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 自动背光调节流程 Android 10.0 自动背光调节流程是指 Android 10.0 操作系统中实现自动调整背光亮度的机制。该机制主要通过监听 light sensor 数据,得到对应的 Lux 值,然后通过配置的背光曲线计算...
### Android 10.0 手动背光调节流程详解 #### 一、概述 在Android 10.0系统中,用户可以通过多种途径来调节屏幕亮度,包括手动调节和自动调节。本文主要关注手动调节的过程,即用户通过滑动亮度调节条来改变屏幕...
注意:在Android10.0里,获取定位权限需要增加以下权限。 打开本地热点需要下面权限: Android 10.0中对隐私权(权限)做了变更。这里总结一些与 WLAN 相关的。 1、对直接访问已配置的 WLAN 网络实施了限制 ...
Android 10.0 长按桌面图标弹窗跳转到中部问题
7.0/8.0/9.0/10.0app在运行时都需要申请运行时权限 默认给与app所要申请的权限 不会弹出授权的申请框
基于Android10.0的设备上,获取相应的MAC地址,手机IMEI号,手机号,手机MSISDN号,手机ICCID号,进行可行性验证,特别是MAC地址方面,在Android10.0前后的设备均进行相应的接口验证,保证其可用性。适合正在致力于...
到了Android 10.0,由于进一步加强了隐私保护,即使拥有该权限,`getDeviceId()`也不再返回SN号。 对于那些需要SN号进行设备管理、故障排查或其他合法用途的开发者,他们可能需要寻找替代方案。这个补丁可能提供了...
二、Android 10.0的权限调整 从Android 10开始,系统对静默安装和卸载进行了权限限制。现在,只有具有`MANAGE_EXTERNAL_STORAGE`或`INSTALL_PACKAGES`权限的应用才能执行静默安装。`MANAGE_EXTERNAL_STORAGE`权限在...
android 10.0禁止系统拨打电话功能,屏蔽掉系统拨打电话的功能
本资料主要探讨在Android 9.0 (Pie) 和 Android 10.0 (Q) 操作系统版本中,在framework层添加KeyEvent事件的详细流程。了解这一流程对于系统开发者或定制ROM的工程师至关重要,因为这涉及到对硬件按键行为的自定义和...
本文将深入探讨Android 10.0版本的锁屏启动流程,包括锁屏的启动、灭屏上锁以及亮屏解锁的逻辑。这对于SystemUI的初学者来说是非常有价值的学习内容,能帮助他们快速理解和掌握锁屏模块的开发。 首先,让我们从锁屏...
写和读的权限配置好后 也动态获取了权限 但使用BitmapFactory的时候还有提示权限拒绝 在anroid9.0及以下的都可以 但android10.0出现了问题这个时候我们在 清单文件里面加入这个配置就可以了。 1、 清单文件...
在Android 10.0操作系统中,实现WiFi与以太网的共存是为了解决在不同网络环境下的连接需求。这种共存模式允许设备同时连接到WiFi网络以访问局域网资源,以及通过以太网接口进行外网访问,为用户提供更灵活的网络连接...
**Android SDK 29详解:探索Android 10.0** Android SDK 29是针对Android 10.0操作系统的开发工具包,为开发者提供了构建、测试和调试Android应用程序所需的资源和API。Android 10是Google在2019年发布的重要更新,...
在Android 9.0 Pie和10.0 Q这两个版本中,默认的USB连接模式是一个关键的话题,尤其是对于经常需要在手机和电脑间传输数据的用户。本文将深入探讨USB连接模式,特别是如何将默认设置更改为MTP(Media Transfer ...
Android 10 引入了 ACCESS_BACKGROUND_LOCATION 权限,以让用户更好地控制应用对位置信息的访问权限,并取消了GpsStatus.NmeaListener的支持。 该资源提供了兼容Android 5.0~Android 10.0的获取NMEA的实现。
Android 10.0(代号为Q)引入了许多改进和优化,包括对GPS功能的更新,以提供更准确、更高效的定位服务。"WT-11-AK"可能是特定设备型号或者GPS模块的标识,而"gnsshal"则是与GPS硬件接口相关的库。 **GPS库详解** ...
android 10.0定制化开发过程中,针对现在安装的app做了定制,在白名单列表的可以安装app 不在列表的app就拒绝安装
相比Android 9.0,Android 10.0带来了一系列新特性,包括暗黑模式、全局手势导航、更加智能的权限管理、更丰富的隐私设置选项、以及对5G、折叠屏幕等新技术的支持等。 而OTA升级指的是通过无线方式将操作系统软件从...
everybody,好久不见,我胡汉三又回来了,android10.0 root 安排!!! 相比较 Android8.1、9.0 而言,Q 版本 的 root变得相当麻烦,10.0 中引入了动态分区机制,可看这篇Android10 动态分区介绍,同样的要想完全 adb...