Вот что я настроил:
В AndroidManifest.xml я добавил для USB_DEVICE_ATTACHED и указал файл device_filter.xml для соответствия конкретным устройствам:
Код: Выделить всё
Код: Выделить всё
Код: Выделить всё
public UsbCdc(Context context) {
mContext = context;
mUsbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);
PendingIntent permissionIntent = PendingIntent.getBroadcast(mContext, 0,
new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
ContextCompat.registerReceiver(mContext, mUsbReceiver, filter, ContextCompat.RECEIVER_EXPORTED);
}
Зависит ли автоматическое предоставление разрешений для устройств в файле device_filter.xml от версии Android или конкретных настроек устройства? Почему ACTION_USB_PERMISSION может не сработать после вызова requestPermission в BroadcastReceiver?
Подробнее здесь: https://stackoverflow.com/questions/791 ... id-manifes