使用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一下再去修改權限;