如何允许您的应用具有使用访问权限?

Posted

技术标签:

【中文标题】如何允许您的应用具有使用访问权限?【英文标题】:How to allow your app with usage access? 【发布时间】:2016-11-29 03:44:39 【问题描述】:

android lollipop 中,想要访问其他应用程序使用情况的应用程序需要通过安全启用。我不想通过“设置”->“安全”->“具有使用访问权限的应用程序”手动启用它,而是想以编程方式启用它。我在任何地方都找不到明确的答案。谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

在你的活动中试试这个:

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    if (!isAccessGranted()) 
        Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
        startActivity(intent);
    



private boolean isAccessGranted() 
    try 
        PackageManager packageManager = getPackageManager();
        ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getPackageName(), 0);
        AppOpsManager appOpsManager = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);
        int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS,
                applicationInfo.uid, applicationInfo.packageName);
        return (mode == AppOpsManager.MODE_ALLOWED);

     catch (PackageManager.NameNotFoundException e) 
        return false;
    

【讨论】:

【参考方案2】:

试试这个代码,希望对你有帮助

if (Build.VERSION.SDK_INT >= 21) 
        UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);
        long time = System.currentTimeMillis();
        List stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time);

        if (stats == null || stats.isEmpty()) 
            Intent intent = new Intent();
            intent.setAction(Settings.ACTION_USAGE_ACCESS_SETTINGS);
            context.startActivity(intent);
        
    

【讨论】:

【参考方案3】:

在您的清单中添加此权限

使用权限 android:name="android.permission.PACKAGE_USAGE_STATS"

然后继续回答这个问题

https://***.com/a/39278489/16126283

【讨论】:

以上是关于如何允许您的应用具有使用访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

检查权限的最佳位置在哪里?

如何测试是不是从包含应用程序授予“允许完全访问”权限?

我的应用程序默认具有相机访问权限。如何关闭它并请求权限?

如何允许 SYNCHRONIZE 访问所有进程的权限

Android系统,如何设置某个应用程序不允许访问网络?

如何验证用户是不是具有网络访问权限并在没有网络访问权限时显示弹出警报