android 什么是有权查看使用情况的应用程序
最近做項(xiàng)目總發(fā)現(xiàn)好多軟件需要設(shè)置一個(gè)權(quán)限,”有權(quán)查看使用情況的應(yīng)用程序“
今天閑下來(lái)看看他是什么東西,總結(jié)下給大家分享一下:
之前也就是android系統(tǒng)5.0之前我們一貫的做法去棧頂應(yīng)用的方法是用getRunningTask,但是5.0之后被google給屏蔽了,但是對(duì)于我們做應(yīng)用鎖,或者桌面懸浮窗的小伙伴們可如何是好,因?yàn)闆](méi)有這些我們是無(wú)法判斷當(dāng)前的棧頂程序是誰(shuí),我們就不能對(duì)之進(jìn)行程序加密,或者隱藏和顯示桌面懸浮窗了。總會(huì)有方法的,查資料發(fā)現(xiàn)大家都在用”有權(quán)查看使用情況的應(yīng)用程序“ 也就是用UsageStatsManager獲取棧頂程序,但是他需要我們程序賦予App權(quán)限,也就是”有權(quán)查看使用情況的應(yīng)用程序“?
就是在安全-高級(jí)-有權(quán)查看使用情況的應(yīng)用 在這個(gè)模塊中勾選上指定APP就可以獲取到棧頂?shù)膽?yīng)用名。
程序中我們用Settings.ACTION_USAGE_ACCESS_SETTINGS?這個(gè)常量就是跳轉(zhuǎn)到設(shè)置界面。
注意:這個(gè)設(shè)置被部分廠商給拿掉了,例如:小米和魅族
這個(gè)選項(xiàng)需要的權(quán)限
<uses-permissionandroid:name="android.permission.PACKAGE_USAGE_STATS"tools:ignore="ProtectedPermissions" />
判斷當(dāng)前設(shè)備中是否有"有權(quán)查看使用情況的應(yīng)用程序"這個(gè)選項(xiàng):
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;} 判斷這個(gè)選項(xiàng)的打開狀態(tài):
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;} 跳轉(zhuǎn)到此設(shè)置界面的方法:
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);startActivity(intent);
總結(jié)
以上是生活随笔為你收集整理的android 什么是有权查看使用情况的应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java用户注册手机短信验证码校验功能实
- 下一篇: windows 7编辑启动菜单 bcde