android - 更新后允许按钮不起作用

标签 android permissions android-6.0-marshmallow

在安装了 Android Marshmallow 最新更新的设备上 - 即 June2016更新,当我请求权限时,允许按钮不起作用。

我已经用这两种设备进行了测试:

Nexus 6p(Andoid 版本 - 6.0.1,内部版本号 - MTC19V)

Nexus 7(Android 版本 6.0.1,内部版本号 - MOB30M)

两者都有最新更新,当我请求权限时,会显示对话框,但我无法按下 ALLOW 按钮。

这是我用来请求权限的代码:

public void showPermissionsDialog() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        int hasWriteExternalStoragePermission = activity.checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
        int hasWriteGetAccountsPermission = activity.checkSelfPermission(android.Manifest.permission.GET_ACCOUNTS);

        if (hasWriteExternalStoragePermission != PackageManager.PERMISSION_GRANTED || hasWriteGetAccountsPermission != PackageManager.PERMISSION_GRANTED) {
            activity.requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.GET_ACCOUNTS}, MainActivity.REQUEST_CODE_ASK_PERMISSIONS);
        } else {
            isAllPermissionsGranted = true;
        }
    } else {
        isAllPermissionsGranted = true;
    }

}



    @Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == REQUEST_CODE_ASK_PERMISSIONS) {
            if (grantResults.length > 0) {
                boolean isAllPermissionsGranted = true;
                for (int i = 0; i < grantResults.length; i++) {
                    if (grantResults[i] != PackageManager.PERMISSION_GRANTED) {
                        isAllPermissionsGranted = false;
                    }
                }

                if (isAllPermissionsGranted) {
                    this.isAllPermissionsGranted = true;
                } else {
                    android.widget.Toast.makeText(this, "Please, grand permissions", android.widget.Toast.LENGTH_LONG).show();
                    showPermissionsDialog();
                }
            }
        }
    }

关于如何解决此问题的任何建议?提前致谢!

编辑

Here是给 Google 的错误报告。我们仍在等待 Google 的修复。

编辑 1

此问题已修复!

最佳答案

编辑:它已在上一个 android 中被标记为缺陷,并将在操作系统的 future 版本中修复。 Bug report

编辑 2:文件管理器给我发电子邮件说他们在他们的应用程序中修复了这个功能。我没有再尝试文件管理器了,但如果你更新应用程序,它应该不会再给你这个问题了。但基本上这种行为可能来自任何应用程序以错误的方式进行覆盖,直到 android 修复它。

我终于明白了(至少在我的情况下)...它的 f**** File Manager应用程序的服务。如果其服务停止,权限将再次起作用。

https://play.google.com/store/apps/details?id=com.rhmsoft.fm

在更新到“MOB30M”之前我有这个应用程序,并且运行时权限没有问题(我的日常工作是对此进行编程)并且我一直在使用文件管理器将发布 APK 放入手机并运行它来安装APK。所以不是我今天安装的一些应用程序。

我认为糟糕的是一个应用程序可以让所有权限系统崩溃。

问题太大了

我知道权限系统没有崩溃,因为一个应用程序可以用来伪造对话框,但是 Android (Google) 不应该告诉你你有一个在顶部运行的应用程序,如果您想授予应用程序权限,您应该卸载 XXXX 应用程序?我的意思是为了用户体验。

一个普通用户,会认为他的手机坏了,可能会 Handlebars 机寄回谷歌或运营商xD

拜托,说实话,android不能让这个更好吗?不像你需要你的手机 Root 才能有这种行为(我的手机没有 Root )。如果你不告诉用户发生了什么,那么就像是坏了

关于android - 更新后允许按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829165/

相关文章:

android - 无法在 Android(在 MarshMallow 及更高版本)设备中创建目录

android网络更改广播接收器并获取网络类型

java - 我怎样才能用java获得目录的文件权限

linux - 请帮我解决 Linux/openCL 权限混淆问题

android - 如何将 Apache HTTP API(旧版)作为编译时依赖项添加到 Android M 的 build.grade?

android - 第二次启动后 Android 6.0.1 设备上的 OutOfMemory 错误

android - KSOAP: "org.ksoap2.serialization.SoapPrimitive"异常问题

java - 如何用Java制作一个Android倒计时器?

android - Android 应用邀请 : Message failed to send with missing container client ID

php - 为什么有权限被拒绝的警告但无论如何都成功打开了文件?