当我们在手机上询问用户的许可时,我们是否有办法通知操作系统不再要求此许可?无论用户的回答是什么。
答案 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);
}
}