【发布时间】:2017-06-18 20:17:12
【问题描述】:
当我们在手机上向用户请求许可时,有没有办法通知操作系统不要再次请求此许可?不管用户的反应是什么。
【问题讨论】:
标签: android dynamic permissions android-6.0-marshmallow
当我们在手机上向用户请求许可时,有没有办法通知操作系统不要再次请求此许可?不管用户的反应是什么。
【问题讨论】:
标签: android dynamic permissions android-6.0-marshmallow
如果程序不“迫切地”需要权限,您可以使用 SharedPreferences 并存储一个名为 firstTime 的变量,其布尔值为 true。 然后检查该变量的 onCreate 方法。如果为真,请询问权限,然后将值设置为假并保存。然后当用户重新运行应用程序时,它不会是“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();
}
【讨论】:
不,对不起。您需要跟踪您是否向用户请求权限,然后使用该信息来确定将来是否请求。
【讨论】:
当您以如下任何方式请求权限时,在打开的请求权限对话框中会出现一个复选框,通过选中该复选框,操作系统将不再向您请求该权限:
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);
}
}
【讨论】: