我在Android 10
&CCD_ 2。代码
intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)
当我按下权限对话框上的"确定"按钮时,总是返回false。我有一个旧的android 5设备,它工作正常。
以下是他们的SDK(UsbDeviceDataExchangeImpl.java)
中的代码,作为模块包含在Android Studio 中
public UsbDeviceDataExchangeImpl( Context ctx, Handler trg_handler )
{
context = ctx;
handler = trg_handler;
mDevManager = (UsbManager)ctx.getSystemService(Context.USB_SERVICE);
mPermissionIntent = PendingIntent.getBroadcast(ctx, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
context.registerReceiver(mUsbReceiver, filter);
}
private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if (ACTION_USB_PERMISSION.equals(action))
{
synchronized (mPermissionIntent)
{
UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false))
{
if(device != null)
{
usb_ctx = OpenDevice(device);
}
handler.obtainMessage(MESSAGE_ALLOW_DEVICE).sendToTarget();
}
else
{
handler.obtainMessage(MESSAGE_DENY_DEVICE).sendToTarget();
}
}
}
}
};
对于Android 10
&用于外部usb设备的11
?
谢谢。
可能是相同的问题:AndroidStudio USB:EXTRA_PERMISSION_GRANTED返回false-始终为
更改PendingIntent。FLAG_IMUTABLE到PendingIntent。FLAG_MUTABLE对我的情况有所帮助。
在此处输入图像描述
Android演示将其设置为0,它也可以工作。