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