如何在没有 "Never ask again" 选项的情况下请求权限对话框?
How can I request the permission dialog without the "Never ask again" option?
我在 Activity 中请求 ACCESS_FINE_LOCATION 的权限,除非用户批准此权限,否则没有任何意义,因此如果用户拒绝,我将关闭 Activity。问题是,一旦用户拒绝了选择 "Never ask again" 选项的请求,我不知道如何重置该状态并在以后再次询问用户是否更改她的想法。
private void loadLocPredictions() {
//ToDo clean the permission thingy up.
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSIONS_REQUEST_FINE_LOCACTION);
return;
}
// Do stuff...
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSIONS_REQUEST_FINE_LOCACTION: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
loadLocPredictions();
} else {
finish();
}
return;
}
}
}
感谢您提前提供帮助。我可能在这里遗漏了一些微不足道的东西,或者只是一杯咖啡。如果是这样的话,请随意给我投反对票。
这完全由用户控制,因此如果您是这个意思,则无法在代码中重置它。
用户可以
clear data (Settings > Apps > your app > Storage > Clear Data)
或
uninstalling/re-install the app
马修的回答是正确的。谢谢
以防对任何人有帮助:这就是 Google 地图和 Instagram 在用户永久拒绝权限时所做的。
我在 Activity 中请求 ACCESS_FINE_LOCATION 的权限,除非用户批准此权限,否则没有任何意义,因此如果用户拒绝,我将关闭 Activity。问题是,一旦用户拒绝了选择 "Never ask again" 选项的请求,我不知道如何重置该状态并在以后再次询问用户是否更改她的想法。
private void loadLocPredictions() {
//ToDo clean the permission thingy up.
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
PERMISSIONS_REQUEST_FINE_LOCACTION);
return;
}
// Do stuff...
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case PERMISSIONS_REQUEST_FINE_LOCACTION: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
loadLocPredictions();
} else {
finish();
}
return;
}
}
}
这完全由用户控制,因此如果您是这个意思,则无法在代码中重置它。
用户可以
clear data (Settings > Apps > your app > Storage > Clear Data)
或
uninstalling/re-install the app
马修的回答是正确的。谢谢
以防对任何人有帮助:这就是 Google 地图和 Instagram 在用户永久拒绝权限时所做的。