USB请求权限流程
USB请求权限流程
1. 新建activity,获取UsbManager usbManager = (UsbManager) getSystemService(Context.USB_SERVICE)
2. 获取所以的USB设备HashMap<String, UsbDevice> map = usbManager.getDeviceList()
3. 过滤别的USB设备,拿到自己USB的USBDevice类,然后请求USB权限,usbManager.requestPermission(usbDevice, pendingIntent);并注册一个回调意图,用来判断用户是否授予权限
4. UsbManager类的requestPermission方法会调用mService. requestDevicePermission
5.mService是IUsbManager的对象,而IUsbManager是一个AIDL接口https://www.androidos.net.cn/android/8.0.0_r4/xref/frameworks/base/core/java/android/hardware/usb/IUsbManager.aidl
UsbService是它的实现类,所以最终是调用的UsbService的requestDevicePermission方法
6. 在requestDevicePermission方法里面调用的getSettingsForUser(userId).requestPermission
7. getSettingsForUser(userId)其实是去获取UsbUserSettingsManager实例,所以是调用的UsbUserSettingsManager的requestPermission方法
8. 在requestPermission方法里面首先会进行判断是否拥有USB权限,如果有就回调广播直接return返回的。如果没有那就判断是否有相机权限,如果没有权限回调广播直接return的。注意从始至终是没有发送用户拒绝的广播的
9. 接着会调用自身的requestPermissionDialog方法,在requestPermissionDialog方法里面又会去调用mUsbPermissionManager.requestPermissionDialog方法
10.最终在UsbPermissionManager类的requestPermissionDialog方法中调用startActivityAsUser 启动UsbPermissionActivity权限申请对话框
11.监听弹出权限对话框的onclick方法,如果点击的授权,那就在UsbPermissionActivity的onDestory里面回调最开始的广播,通知我们的应用,用户授予的权限。
相关推荐
Android 10.0 自动背光调节流程.pdf
Android 10.0 手动背光调节流程.pdf
注意:在Android10.0里,获取定位权限需要增加以下权限。 打开本地热点需要下面权限: Android 10.0中对隐私权(权限)做了变更。这里总结一些与 WLAN 相关的。 1、对直接访问已配置的 WLAN 网络实施了限制 ...
7.0/8.0/9.0/10.0app在运行时都需要申请运行时权限 默认给与app所要申请的权限 不会弹出授权的申请框
基于Android10.0的设备上,获取相应的MAC地址,手机IMEI号,手机号,手机MSISDN号,手机ICCID号,进行可行性验证,特别是MAC地址方面,在Android10.0前后的设备均进行相应的接口验证,保证其可用性。适合正在致力于...
Android10.0SN号获取接口patch.zip
android 10.0禁止系统拨打电话功能,屏蔽掉系统拨打电话的功能
android 9.0 10.0 USB连接模式默认充电连接模式修改为默认设置为MTP模式
Android 10 引入了 ACCESS_BACKGROUND_LOCATION 权限,以让用户更好地控制应用对位置信息的访问权限,并取消了GpsStatus.NmeaListener的支持。 该资源提供了兼容Android 5.0~Android 10.0的获取NMEA的实现。
Android10.0 静默安装、卸载接口
本文档主要讲解锁屏的启动流程,锁屏的灭屏上锁,锁屏的亮屏解锁逻辑。 此文档适合SystemUI的初学者,能让SystemUI初学者立刻马上接手SystemUI锁屏模块。 有助于SytemUI锁屏的开发。 SystemUI锁屏初学者 SytemUI...
android 10.0定制化开发过程中,针对现在安装的app做了定制,在白名单列表的可以安装app 不在列表的app就拒绝安装
Android10.0修改搜狗为默认输入.html
A133 android10.0 EC200S-CN 4G ril库
everybody,好久不见,我胡汉三又回来了,android10.0 root 安排!!! 相比较 Android8.1、9.0 而言,Q 版本 的 root变得相当麻烦,10.0 中引入了动态分区机制,可看这篇Android10 动态分区介绍,同样的要想完全 adb...
Android MVVM框架使用(十三)UI更新 (App启动白屏优化、适配Android10.0深色模式)
9.0 10.0 在framework层添加KeyEvent按键事件的流程
Dr.Fone Toolkit for iOS and Android 10.0.12.65.exe
Rockchip_Introduction_AB_System_OTA_from_Android9.0_to_Android10.0_CN&EN.pdf
写和读的权限配置好后 也动态获取了权限 但使用BitmapFactory的时候还有提示权限拒绝 在anroid9.0及以下的都可以 但android10.0出现了问题这个时候我们在 清单文件里面加入这个配置就可以了。 1、 清单文件...