使用android USB API 无法获取USB设备ID的方法
UsbManager manager = (UsbManager) m_context.getSystemService(Context.USB_SERVICE);
HashMap<String, UsbDevice> deviceList = manager.getDeviceList();
Iterator<UsbDevice> deviceIterator = deviceList.values().iterator();
while (deviceIterator.hasNext())
{
UsbDevice device = deviceIterator.next();
Log.e(TAG,device.getProductId()+");
}
1. 上述方法无法获取到USB设备的ID,解决方法如下:
-
创建 android.hardware.usb.host.xml,内容:
<permissions> <feature name="android.hardware.usb.host"/> </permissions>
将该文件push到/system/etc/permissions/目录下
-
在/system/etc/permissions/下的handheld_core_hardware.xml或者tablet_core_hardware.xml文件的<permissions>段中添加:
<feature name="android.hardware.usb.host" />
-
修改AndroidManifest.xml文件,添加以下权限
<uses-permission android:name="android.hardware.usb.host" /> <uses-permission android:name="android.hardware.usb.accessory" />
其实我测了不加也可以,也可以获取到;
- 重启设备
2. 上述方法中会出现的问题:
- /system/etc/permissions/下得文件无法修改,没权限修改和写,只有读得权限:Unable to chmod handheld_core_hardware.xml: Read-only file system
- 解决方案:adb remount一下再去修改权限;
网友评论