【问题标题】:How can I request the permission dialog without the "Never ask again" option?如何在没有“不再询问”选项的情况下请求权限对话框?
【发布时间】:2017-04-20 14:20:57
【问题描述】:

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

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

感谢您提前提供任何帮助。我可能在这里遗漏了一些微不足道的东西,或者只是一杯咖啡。如果是这种情况,请随时对我投反对票。

【问题讨论】:

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


    【解决方案1】:

    这完全由用户控制,所以如果你是这个意思,你不能在代码中重置它。

    用户可以

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

    uninstalling/re-install  the app 
    

    【讨论】:

      【解决方案2】:

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

      以防万一:当用户永久拒绝权限时,Google 地图和 Instagram 会这样做。

      【讨论】:

        猜你喜欢
        • 2017-03-31
        • 2016-02-10
        • 1970-01-01
        • 2015-12-27
        • 2017-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        相关资源
        最近更新 更多