这可能是因为 Android 12 对 USB 权限管理进行了改变,需要在 app 中增加相关权限声明。在 Manifest 文件中添加以下代码:
此外,还需要通过 USBManager 获取 USB 设备的访问权限,并在 app 运行时进行检测和请求。这段代码示例展示了如何进行:
UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE);
if (usbManager == null) {
// 检测设备是否支持 USB
return;
}
UsbDevice usbDevice = ... // 在这里获取 USB 设备的实例
if (usbManager.hasPermission(usbDevice)) {
// 已经获取了访问权限,开始进行数据传输等操作
} else {
// 请求访问权限
PendingIntent permissionIntent = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_USB_PERMISSION), 0);
usbManager.requestPermission(usbDevice, permissionIntent);
}
注意:代码示例中的 ACTION_USB_PERMISSION 是一个自定义的广播,需要在 app 中定义。