仅请求一次android权限

时间:2017-06-18 20:17:12

标签: android dynamic permissions android-6.0-marshmallow

当我们在手机上询问用户的许可时,我们是否有办法通知操作系统不再要求此许可?无论用户的回答是什么。

3 个答案:

答案 0 :(得分:2)

不,抱歉。您需要跟踪是否询问用户是否有权限,然后使用该信息确定是否要求将来。

答案 1 :(得分:1)

如果程序没有“绝望地”需要权限,您可以使用SharedPreferences并存储名为firstTime的变量,其布尔值为true。 然后检查onCreate方法中的该变量。如果是,请询问权限,然后将值设置为false并保存。然后当用户重新运行应用程序时,它将不是“FirstTime”,因此不会提示他获得许可。

 SharedPreferences pref = this.getSharedPreferences("PACKAGE.NAME",MODE_PRIVATE);
 Boolean firstTime = pref.getBoolean("firstTime",true);
 if(firstTime){
 //Ask for permissions here
 pref.edit().putBoolean("firstTime",false).apply();
 }

答案 2 :(得分:0)

当您以下列任何方式询问权限时,在可以请求许可的对话框中有一个复选框,通过检查它,操作系统不会再要求您提供该权限:

 if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
    if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        } else {
            ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, RC_WRITE_EXTERNAL_STORAGE);
        }
 }