usb通信权限

it2026-04-14  2

android的USB开发时 mUsbManager.getDeviceList()获取都为空

1.在/system/etc/permissions下的handheld_core_hardware.xml

1. <feature name="android.hardware.usb.host" /> 修改AndroidManifest.xml文件,添加以下权限(很关键): 2. <uses-permission android:name="android.hardware.usb.host" /> 3. <uses-permission android:name="android.hardware.usb.accessory" />

类提供的主要方法有:

getDeviceList()

获得设备列表,返回的是一个HashMap.;

hasPermission(UsbDevice device)

判断你的应用程序是否有接入此USB设备的权限,如果有则返回真,否则返回false.

openDevice(UsbDevice device)

打开USB设备,以便向此USB设备发送和接受数据,返回一个关于此USB设备的连接。

requestPermission(UsbDevice device, PendingIntent pi)

向USB设备请求临时的接入权限。

UsbManager mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE); for (UsbDevice device : mUsbManager.getDeviceList().values()) { Log.e(TAG, getLineInfo()+"[ updateUsbDevices] device =" + device); if (!isExternalPort(device)) { continue; } // 获取权限 if (mUsbManager.hasPermission(device)) { if (supportAccessory(device)) { if (mSupportUsbDevice == null) { mSupportUsbDevice = device; // notify attach if (toConnect) { connectDevice(); } } Log.e(TAG, getLineInfo()+"---hasPermission"); return; } } else { mUsbManager.requestPermission(device, mPermissionIntent); Log.e(TAG, "request permission -----------2------------"); } }
最新回复(0)