【问题标题】:Android 6 requesting a permissionAndroid 6 请求权限
【发布时间】:2016-02-10 12:28:32
【问题描述】:

在 android 6 中,我请求使用存储的权限。 现在,当用户拒绝我的请求时,我想向他显示一个对话框,解释为什么应用程序需要权限才能获得他的权限。

如何做到这一点?

是否有任何内置对话框,如您使用请求权限方法时弹出的对话框?

【问题讨论】:

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


【解决方案1】:

最好在请求权限之前显示自定义对话框,以便用户可以决定是接受还是拒绝权限。

你可以用这个

int hasReadPermission = checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE);

if (hasReadPermission != PackageManager.PERMISSION_GRANTED) {
    //show your custom dialog regarding why you need this permission
}

当用户点击对话框按钮时,通过使用向他们显示权限对话框

requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
        50);

【讨论】:

    【解决方案2】:

    执行以下操作:

    /**
     * Permission check for Marshmallow
     */
    public void checkMallowPermissions() {
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
                ContextCompat.checkSelfPermission(
                        getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE
                ) != PackageManager.PERMISSION_GRANTED) {
    
    
    
            if(!ActivityCompat.shouldShowRequestPermissionRationale(this,
                    Manifest.permission.WRITE_EXTERNAL_STORAGE) ||
    
                    checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
                    PackageManager.PERMISSION_GRANTED)
    
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
                        PERMISSION_REQUEST_CODE);
        }
        if(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
                    PackageManager.PERMISSION_GRANTED) {
              // Show your dialog
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多