如何在没有"从不再问及#34;的情况下请求权限对话框选项?

时间:2016-12-06 02:45:15

标签: android android-6.0-marshmallow android-permissions user-permissions

我在Activity中请求ACCESS_FINE_LOCATION的权限,除非用户批准此权限,否则没有任何意义,因此如果用户拒绝此操作,我将关闭活动。问题是,一旦用户通过"从不再询问" 选项拒绝请求,我就不知道如何重置该状态并在将来再次询问如果用户改变主意。

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;
        }
    }
}

enter image description here

enter image description here 在此先感谢您的帮助。我可能在这里遗漏了一些小事,或者只是喝咖啡。如果是这样的话,请随意给我打电话。

2 个答案:

答案 0 :(得分:1)

这完全由用户控制,因此如果您的意思是这样的话,就不能在代码中重置它。

用户可以

clear data (Settings > Apps > your app > Storage > Clear Data)

uninstalling/re-install  the app 

答案 1 :(得分:1)

马修的回答是正确的。感谢。

如果它可以帮助任何人:这是Google地图和Instagram在用户永久拒绝权限时所执行的操作。

enter image description here enter image description here

enter image description here