Разрешение USB не предоставляется автоматически для отфильтрованных устройств в манифесте Android, ACTION_USB_PERMISSIONJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Разрешение USB не предоставляется автоматически для отфильтрованных устройств в манифесте Android, ACTION_USB_PERMISSION

Сообщение Anonymous »

Я разрабатываю приложение для Android, которое управляет USB-устройствами с помощью внешней библиотеки. MainActivity создает экземпляр этой библиотеки, которая обрабатывает события USB-устройства (подключение/отключение) и разрешения через BroadcastReceiver. Моя цель — автоматически предоставлять разрешения устройствам, указанным в файле фильтра XML, при подключении, без явного вызова requestPermission.
Вот что я настроил:
В AndroidManifest.xml я добавил для USB_DEVICE_ATTACHED и указал файл device_filter.xml для соответствия конкретным устройствам: Мой файл device_filter.xml содержит идентификаторы поставщиков и продуктов для устройств, с которыми я хочу работать: В моем классе UsbCdc, который обрабатывает логику USB, я инициализирую BroadcastReceiver, который прослушивает ACTION_USB_PERMISSION и USB_DEVICE_ATTACHED:

Код: Выделить всё

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, hasPermission(device) по-прежнему возвращает false. В mUsbReceiver, если у устройства нет разрешений, я вызываю mUsbManager.requestPermission(device, PermissionIntent). Однако ACTION_USB_PERMISSION после этого не запускается, хотя я предоставил разрешения вручную.
Зависит ли автоматическое предоставление разрешений для устройств в файле device_filter.xml от версии Android или конкретных настроек устройства? Почему ACTION_USB_PERMISSION может не сработать после вызова requestPermission в BroadcastReceiver?

Подробнее здесь: https://stackoverflow.com/questions/791 ... id-manifes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Разрешение USB не предоставляется автоматически для отфильтрованных устройств в манифесте Android, ACTION_USB_PERMISSION
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Android 12 блокирует касания при использовании
    Anonymous » » в форуме Android
    0 Ответы
    126 Просмотры
    Последнее сообщение Anonymous
  • Uid 10613 не имеет ни одного из [android.permission.ACCESS_FINE_LOCATION, android.permission.ACCESS_COARSE_LOCATION]
    Anonymous » » в форуме JAVA
    0 Ответы
    101 Просмотры
    Последнее сообщение Anonymous
  • Intent.action == "Android.app.action.profile_provisioning_complete" не стрельба
    Anonymous » » в форуме Android
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Как передать значение переменной класса Action в другой класс Action в Struts 2?
    Anonymous » » в форуме JAVA
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»