USB android授权方式
权限的控制分三块:
1:USB host端有个线程循环检测系统是否USB设备插拔,如果有就找到申请权限的APP并调用起来
2:APP运行后主动申请权限,也就是requestPermission()接口
3:APP运行后直接打开USB设备,这时候USB host端会去检测APP是否已经有控制权限了,也就是调用的hasPermission()接口
第一种方式主要是再设计app 时候,能通过系统intent filter , 进行启动某个activity
第二种方式主要是设计app已经启动,再使用usb 的使用进行动态注册,申请权限
第三中跟第二种类似,是再open device 时候进行申请权限, 可以hasPermission 授权
第一种:
systemReady -> UsbHostManager.java
monitorUsbHostBus ->
android_server_UsbHostManager_monitorUsbHostBus -> android_server_UsbHostManager.cpp
usb_host_run -> Usbhost.c
usb_host_read_event ->
context->cb_added -> //有usb设备添加
usb_device_added ->
env->CallVoidMethod -> //对方方法method_endUsbDeviceAdded --> endUsbDeviceAdded
endUsbDeviceAdded -> UsbHostManager.java