使用android USB API 无法获取USB设备ID的方法

使用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,解决方法如下:

  1. 创建 android.hardware.usb.host.xml,内容:

     <permissions>  
     <feature name="android.hardware.usb.host"/>  
     </permissions>  
    

    将该文件push到/system/etc/permissions/目录下

  2. 在/system/etc/permissions/下的handheld_core_hardware.xml或者tablet_core_hardware.xml文件的<permissions>段中添加:

     <feature name="android.hardware.usb.host" />  
    
  3. 修改AndroidManifest.xml文件,添加以下权限

     <uses-permission android:name="android.hardware.usb.host" />  
     <uses-permission android:name="android.hardware.usb.accessory" /> 
    

其实我测了不加也可以,也可以获取到;

  1. 重启设备

2. 上述方法中会出现的问题:

  1. /system/etc/permissions/下得文件无法修改,没权限修改和写,只有读得权限:Unable to chmod handheld_core_hardware.xml: Read-only file system
    • 解决方案:adb remount一下再去修改权限;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容