相关疑难解决方法(0)

如何在用户单击正确的目标应用程序时关闭ACTION_USAGE_ACCESS_SETTINGS意图?

我在set ACTION_USAGE_ACCESS_SETTINGS(Settings->Security->Apps with usage access)中使用Intent 在UsageStatsManagerLollipop版本中使用.

 public static final int MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS = 1;

 if(!hasPermission()){
                startActivityForResult(
                        new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS),
                        MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);
            }
Run Code Online (Sandbox Code Playgroud)

首先,onCreate()将检查应用程序的权限.如果应用没有权限,则打开Intent(不检查)

@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private boolean hasPermission() {
    try {
        PackageManager packageManager = getApplicationContext().getPackageManager();
        ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getApplicationContext().getPackageName(), 0);
        AppOpsManager appOpsManager = (AppOpsManager) getApplicationContext().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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果用户选择(检查)目标应用程序,我想关闭设置窗口,否则,它将显示有关应用程序名称的消息,以指导用户的选择.我该怎么做?谢谢.我认为它会onActivityResult起作用

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-5.0-lollipop

11
推荐指数
1
解决办法
2755
查看次数