我在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)