android 什么是有权查看使用情况的应用程序
最近做项目总发现好多软件需要设置一个权限,”有权查看使用情况的应用程序“
今天闲下来看看他是什么东西,总结下给大家分享一下:
之前也就是android系统5.0之前我们一贯的做法去栈顶应用的方法是用getRunningTask,但是5.0之后被google给屏蔽了,但是对于我们做应用锁,或者桌面悬浮窗的小伙伴们可如何是好,因为没有这些我们是无法判断当前的栈顶程序是谁,我们就不能对之进行程序加密,或者隐藏和显示桌面悬浮窗了。总会有方法的,查资料发现大家都在用”有权查看使用情况的应用程序“ 也就是用UsageStatsManager获取栈顶程序,但是他需要我们程序赋予App权限,也就是”有权查看使用情况的应用程序“
就是在安全-高级-有权查看使用情况的应用 在这个模块中勾选上指定APP就可以获取到栈顶的应用名。
程序中我们用Settings.ACTION_USAGE_ACCESS_SETTINGS 这个常量就是跳转到设置界面。
注意:这个设置被部分厂商给拿掉了,例如:小米和魅族
这个选项需要的权限
<uses-permissionandroid:name="android.permission.PACKAGE_USAGE_STATS"tools:ignore="ProtectedPermissions" />
判断当前设备中是否有"有权查看使用情况的应用程序"这个选项:
private boolean isNoOption() {PackageManager packageManager = getApplicationContext().getPackageManager();Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);List<ResolveInfo> list = packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);return list.size() > 0;}
判断这个选项的打开状态:
private boolean isNoSwitch() {long ts = System.currentTimeMillis();UsageStatsManager usageStatsManager = (UsageStatsManager) getApplicationContext().getSystemService("usagestats");List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, 0, ts);if (queryUsageStats == null || queryUsageStats.isEmpty()) {return false;}return true;}
跳转到此设置界面的方法:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);startActivity(intent);
android 什么是有权查看使用情况的应用程序相关推荐
- 查看android端口命令,netstat命令-查看端口被占用情况,并杀死进程
netstat命令的功能是显示网络连接.路由表和网络接口信息 命令格式:netstat [选项] 查看命令帮助:netstat -help 查看所有的端口占用情况 netstat -ano 查看指定端 ...
- 【Android】【转】查看内存
本来想着写点啥的,但发现已经有很多人写了类似的文章了.就直接转载了写得比较齐全的文章. 本人已试验过方法一.六.七.八. [文章来源]http://blog.csdn.net/hudashi/arti ...
- android 设备占用_如何查看正在占用Android设备的空间
android 设备占用 When you picked up your shiny new Android device, you probably thought "yeah, this ...
- android studio中崩溃无法查看log?
android studio中崩溃无法查看log? https://www.zhihu.com/question/32024327 android studio中崩溃无法查看log? 用AS,App崩 ...
- linux怎么查看证书库,curl --resolve 查看证书情况
通过curl 解析证书 [root@harbor ~]# curl --resolve 'www.abc.com:127.0.0.1' https://www.abc.com/ -vvv * Cou ...
- Android混淆后的日志查看方法(mac)
Android混淆后的日志查看方法(mac) 注:这是本人常用方法,如下述方法有错误或更好的办法,请大佬评论指出,防止误导他人.收集日志用的友盟,混淆后的日志在友盟错误列表-错误详情-详细日志, 1. ...
- Win11如何查看电池情况 Win11查看电池情况的方法
不少小伙伴在更新Win11系统后,不知道如何查看自己电脑的电池情况,也不知道到哪里改自己的电池使用方法,那么遇到这种问题应该怎么办呢?下面就和小编一起来看看应该怎么操作吧. Win11查看电池情况的方 ...
- 服务器训练数据 关闭终端,一文明白使用nohup将服务器训练程序后台运行不关闭+随时通过查看训练情况输出与visdom可视化...
使用nohup将训练程序后台不间断运行+随时查看训练情况输出与可视化 使用服务器进行远程训练 由于笔者经常需要使用服务器进行训练,且有些模型训练起来需要很长的时间,如Mask模型,故经常需要长期跑程序 ...
- CentOS查看硬件情况
CentOS7 查看硬件情况 lsblk 查看分区和磁盘 df -h 查看空间使用情况 fdisk -l 分区工具查看分区信息 cfdisk /dev/sda 查看分区 blkid 查看硬盘label ...
最新文章
- 报名 | 风控中的A/B卡:申请模型和行为模型讲座
- OpenCV学习--saturate_cast防止数据溢出
- 95后热搜哪些事,夸克用AI引擎发布2021年度关键词
- 洛谷 P1993 小K的农场 解题报告
- MySQL视图索引与存储过程精析
- gdt描述_GDT形位公差详解.ppt
- SHN-PEG2000-Pyrene,Pyrene-PEG2000-NHS
- 介绍一下115sha1链接使用方法
- html页面设计扁平化,35个扁平化网站设计灵感
- 那些不回你微信的人都在看什么?
- educoder Git进阶之合并远程分支、rebase、储藏
- iOS视频 压缩过程 AVAssetExportSessionStatusFailed 文件创建失败
- 万字详解什么是生成对抗网络GAN
- qcustomplot 峰值_QT 本程序可读取Yokogawa 光谱仪多个数据文件(CSV格式)并寻峰 - 下载 - 搜珍网...
- 微信小程序直播服务器是用的腾讯的,使用微信小程序和腾讯云实现直播功能
- 音乐歌单Android,仿网易云音乐歌单界面 Header滑动效果
- Speedoffice(excel)如何制作斜线表头
- 免费安装office流程(官方自动批量激活)
- java如何对不齐,java中的测不准原理_java认证
- 在线升级R语言版本以及在RStudio容纳最新版本的R
热门文章
- 戴尔服务器r710主板电池位置,戴尔R710内部结构1
- 倾斜摄影相机焦距与实景三维模型效果的关系
- 数据分析报告2:Superstore销售情况分析
- 百度云不限速-proxyee-down
- cad工具箱详细讲解_筑龙网CAD工具箱使用说明
- 从qq服务器删除误收邮件,QQ邮箱撤回时显示撤回失败,对方已读 收件箱里的消息却是对方已阅读或已删除 这种情况下邮件有没有被删除...
- 2018ACM-ICPC 焦作站现场赛 F. Honeycomb(BFS求最短路,卡memset)
- “progtam received signal SIGABRT,Aborted.“错误
- ESP32 开发笔记(三)源码示例 8_DHT11_RMT 使用RMT实现读取DHT11温湿度传感器
- Windows7 UAC 实验