在带有4.2.2的三星Galaxy 4上,我们的应用程序开始出现以下错误(N.B.(在运行4.0.1的galaxy III上运行正常): -
“由于未经授权尝试访问设备中的系统,应用程序已被迫停止。这可能是由于......损害了设备的内核“。
和SEAndroid明星通知“应用程序被迫停止软件的未授权行为。这可能......”
我们的应用程序死了:(
我们在运行4.2.2的三星Galaxy 4上进行了调试,当我们在设备上调用标准的Android USB主机api - UsbManager openDevice()(参见下面的三行代码)时,会发生强制关闭和错误通知我们已经使用了“android.hardware.usb.action.USB_DEVICE_ATTACHED”意图,我们的活动有一个意图过滤器设置,因此有权使用(请参阅Android文档中有关自动许可的摘录)。 ...
UsbDevice usbdevice = (UsbDevice) getIntent().getParcelableExtra(UsbManager.EXTRA_DEVICE);
UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
mUsbManager.openDevice(usbdevice); //App is force closed by SELinux at this point
这是SELinux的已知问题还是来自三星的最新安全策略更新?有解决方法吗?
来自Android文档的摘录: - 获得与设备通信的权限 在与USB设备通信之前,您的应用程序必须获得用户的许可。 注意:如果您的应用程序使用意图过滤器在连接时发现USB设备,则在用户允许您的应用程序处理意图时,它会自动获得许可。如果没有,您必须在连接到设备之前在应用程序中明确请求权限。