【问题标题】:ALLOW button not working after update更新后允许按钮不起作用
【发布时间】:2016-06-15 07:46:42
【问题描述】:

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

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

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

此问题已修复!

【问题讨论】:

  • 你覆盖了 onRequestPermissionsResult 吗??
  • 是的,当然...我会添加代码
  • 我刚刚更新了操作系统,直到早上同一组代码工作正常,更新后我不要点击允许按钮。如果您找到任何解决方案,请告诉我?
  • @Vivek 我一定会的。到目前为止,我已经找到了这个code.google.com/p/android/issues/detail?id=213120
  • @hakobyanheghine 我认为 Android 团队中的某个人搞砸了......我遇到了同样的问题,允许按钮停止工作,并且它一直在为飞蛾工作并继续工作的相同代码在以前的版本中...我今天早上刚刚更新了我的 nexus 6,现在无法正常工作 xD

标签: android permissions android-6.0-marshmallow


【解决方案1】:

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

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

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

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

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

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

问题太大了

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

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

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

【讨论】:

  • 哇,谢谢,我做到了,而且效果很好,但是就像你说的那样,一个应用程序可以做到这一点非常糟糕xD
  • @JavierVieira 我刚刚尝试过,它有效!谢谢!希望谷歌能在我的应用上线之前解决这个问题 xD
  • 他们可能很快就会这样做,并且可能他们也将停止用这个版本更新更多的人......主要是因为谷歌应用程序以及使用 SDK 23 编译的所有应用程序都受到影响
  • 叠加层能否超越权限对话框,并用于将“允许”和“拒绝”替换为上方图像?
【解决方案2】:

在我的情况下,Clean Master 的 iSwipe 导致了这个问题,在他们的设置中禁用 ISWIPE 功能

【讨论】:

    【解决方案3】:

    它的 android marshmallow 6.0.1 问题。 根据谷歌支持,他们正在解决这个问题 https://code.google.com/p/android/issues/detail?id=213120

    【讨论】:

      【解决方案4】:

      我正要报告同样的问题,但在这里它已经注册了,我自 2 个月以来就面临这个问题,不知道为什么,但“允许”按钮在我的 NEXUS 6P 手机上也不起作用。 看来这个问题只在nexus系列运行

      @Google 和 android 团队:请解决这个问题,我的意思是每个应用程序都遇到了多少次这个问题,这真的很烦人,需要继续设置手动设置权限的解决方法。

      这真是一个愚蠢的错误:/

      【讨论】:

        【解决方案5】:

        卸载File Manager重新下载,“允许”按钮突然又起作用了。

        【讨论】:

        • 这不是一个有效的答案...它可以工作,因为当您卸载服务时停止...如果您再次安装,则服务不会运行,直到您再次打开应用程序...尽快.当您这样做时,应用程序的服务再次开始运行 f***** 再次启动权限系统。也可能不是因为文件管理器......它可能是任何应用程序进行覆盖。 Ot 已在 Android 的最后一次更新中正式标记为缺陷,将由 Android 团队修复
        • 我同意@JavierVieira,卸载不能解决问题,因为不能完全解决问题,我们必须等待谷歌的下一个安全补丁。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-28
        • 1970-01-01
        相关资源
        最近更新 更多