我有以下代码在应用启动时运行(在MainActivity的onCreate中),并检查我是否具有USB设备的权限:
UsbManager manager = (UsbManager) mContext.getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Set<String> keySet = deviceList.keySet();
for(String key : keySet)
{
if(deviceList.get(key).getProductId()==24577 && deviceList.get(key).getVendorId()==1027)
{
if( !manager.hasPermission(deviceList.get(key))){
我的清单中有这个
<uses-feature android:name="android.hardware.usb.host"/>
如果我正常运行该应用,则hasPermission返回true,一切正常。
问题是另一个应用程序启动了我的应用程序,然后又启动了另一个应用程序,因此我的应用程序仅在几毫秒内就处于前台。在这种情况下,hasPermission返回false。
为什么?以及如何避免这种行为
答案 0 :(得分:0)
问题在于应用程序的前台时间不足。有时甚至没有调用mainActivity的onCreate。
我结束了将应用程序置于前台,完成了onCreate上的活动,并将其发送回后台