相关疑难解决方法(0)

Android M - 检查运行时权限 - 如何确定用户是否选中"从不再问"?

根据这个:http://developer.android.com/preview/features/runtime-permissions.html#coding应用程序可以检查运行时权限和请求权限(如果尚未授予它).然后将显示以下对话框:

在此输入图像描述

如果用户拒绝重要权限,则应用程序应显示解释为何需要权限以及拒绝具有何种影响的解释.该对话框有两个选项:

  1. 再试一次(再次请求许可)
  2. 拒绝(app将在没有该权限的情况下工作).

Never ask again但是,如果用户检查,则不应显示带有解释的第二个对话框,尤其是如果用户之前已经拒绝过一次.现在的问题是:我的应用程序如何知道用户是否已检查过Never ask again?IMO onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)并没有给我这些信息.

第二个问题是:Google是否计划在权限对话框中添加自定义消息,以解释应用程序需要权限的原因?那样就永远不会有第二个对话框,肯定会有更好的ux.

android android-permissions android-6.0-marshmallow

288
推荐指数
10
解决办法
15万
查看次数

Android 权限 - 永远记住“不再询问”选择

我的应用程序要求用户提供相机权限。如果用户拒绝该权限,则在重新启动时再次请求他的权限。这一次,向用户显示“不再询问”复选框。如果用户选择从不再次询问复选框,则应用程序永远不会请求许可。没关系。问题是我的手机永远不会忘记这个选择,它会记住这个选择。我删除了应用程序,清除了所有数据,但没有任何效果。

当我删除应用程序并重新安装它时,该应用程序仍然无法请求许可。我打开设置-> 应用程序设置->然后我手动为我的应用程序授予了必要的权限。没关系。然后,我删除并重新安装它。但是应用程序仍然不能请求许可。我不想在每次安装时手动授予我的应用程序权限。如何重置“不再询问”复选框的选择。

if (Build.VERSION.SDK_INT >= 23)
{
    int hasPermission = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA);

    if (hasPermission != PackageManager.PERMISSION_GRANTED)
    {
        if (shouldShowRequestPermissionRationale(Manifest.permission.CAMERA))
        { 
            getErrorDialog("You need to allow Camera permission." +
                    "\nIf you disable this permission, You will not able to add attachment.", MainActivity.this, true).show();
        }
        return;
    }
}

public AlertDialog.Builder getErrorDialog(String message, Context context, final boolean isFromCamera) {
   final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
   alertDialog.setTitle(getString(R.string.app_name)).setMessage(message);
   alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
       @Override
       public void onClick(DialogInterface dialog, int which) {

           dialog.dismiss();
           if (Build.VERSION.SDK_INT …
Run Code Online (Sandbox Code Playgroud)

permissions android

5
推荐指数
2
解决办法
9205
查看次数

Android M - 有什么方法可以知道用户是否选择不再看到授予权限对话框?

如果应用程序调用ActivityCompat.requestPermissions(...),操作系统会显示一个带有“拒绝”和“允许”按钮的对话框。还有一个“不再显示此内容”复选框。

我无法让应用程序知道用户是否勾选了此框。在onRequestPermissionsResult(...)中,如果用户单击“拒绝”并且用户在单击“拒绝”之前勾选了复选框,则grantResults参数为PERMISSION_DENIED 。

应用程序有什么方法可以确定用户是否不想再次看到该对话框?

android android-permissions

3
推荐指数
1
解决办法
840
查看次数