Я пытаюсь запросить разрешение USB в своем приложении для Android и установить связь с USB-устройствами. Однако после того, как отображается всплывающее окно запроса разрешения USB и пользователь предоставляет разрешение, UsbBroadcastReceiver не срабатывает, и PendingIntent, который я настроил для трансляции, не получен.
Я пытаюсь запросить разрешение USB в своем приложении для Android и установить связь с USB-устройствами. Однако после того, как отображается всплывающее окно запроса разрешения USB и пользователь предоставляет разрешение, UsbBroadcastReceiver не срабатывает, и PendingIntent, который я настроил для трансляции, не получен. [code]class MainActivity : ComponentActivity() {
private val ACTION_USB_PERMISSION = BuildConfig.APPLICATION_ID + ".USB_PERMISSION" private lateinit var usbReceiver: UsbBroadcastReceiver
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)
usbReceiver = UsbBroadcastReceiver()
val permissionIntent = PendingIntent.getBroadcast( this, 0, Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE )
val usbManager = getSystemService(Context.USB_SERVICE) as UsbManager usbManager.deviceList.values.forEach { device -> if (!usbManager.hasPermission(device)) { Log.d("USB_REQUEST", "Requesting permission for device: ${device.deviceName}") usbManager.requestPermission(device, permissionIntent) } }
class UsbBroadcastReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val action = intent.action Log.d("USB_RECEIVER", "Received Action: $action")
when (action) { BuildConfig.APPLICATION_ID + ".USB_PERMISSION" -> { val device: UsbDevice? = intent.getParcelableExtra(UsbManager.EXTRA_DEVICE) if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { Log.d("USB_RECEIVER", "Permission granted for device: ${device?.deviceName}") // Set up USB communication here } else { Log.e("USB_RECEIVER", "Permission denied for device: ${device?.deviceName}") } } UsbManager.ACTION_USB_DEVICE_ATTACHED -> { Log.d("USB_RECEIVER", "USB Device Attached") } UsbManager.ACTION_USB_DEVICE_DETACHED -> { Log.d("USB_RECEIVER", "USB Device Detached") } } } } [/code] Я ожидал, что UsbBroadcastReceiver сработает, когда пользователь предоставит или откажет в разрешении для USB-устройства.
Я пытаюсь запросить разрешение USB в своем приложении для Android и установить связь с USB-устройствами. Однако после того, как отображается всплывающее окно запроса разрешения USB и пользователь предоставляет разрешение, UsbBroadcastReceiver не...
Я пытаюсь предоставить разрешения подключенному USB-устройству с помощью PendingIntent. Однако при использовании PendingIntent.FLAG_MUTABLE я получаю следующее предупреждение:
Mutable неявный PendingIntent выдаст исключение, следуйте любой из
этих...
Я пытаюсь предоставить разрешения подключенному USB-устройству с помощью PendingIntent. Однако при использовании PendingIntent.FLAG_MUTABLE я получаю следующее предупреждение:
Mutable неявный PendingIntent выдаст исключение, следуйте любой из
этих...
Я пытаюсь создать правило в /etc/udev/rules.d на RPi, подключенном к плате MCU через UBS, которое можно включить с помощью выключателя питания и которое не питается от USB.Если на MCU включено питание, оно запускает это правило, которое скажет...