更新后允许按钮不起作用
ALLOW button not working after update
在安装了 Android Marshmallow 最新更新的设备上 - 即 June2016 更新,当我请求权限时,ALLOW 按钮不起作用。
我已经用这两种设备进行了测试:
Nexus 6p(Android 版本 - 6.0.1,内部版本号 - MTC19V)
Nexus 7(Android 版本 6.0.1,内部版本号 - MOB30M)
两者都有最新的更新,当我请求权限时,会显示对话框,但我无法按下“允许”按钮。
这是我用来请求权限的代码:
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 中被标记为缺陷,它将在 OS 的未来版本中修复。 Bug report
编辑 2:文件管理器给我发邮件说他们在他们的应用程序中修复了这个功能。我没有再尝试文件管理器,但如果您更新应用程序,它应该不会再给您带来这个问题。但基本上这种行为可能来自任何以错误方式覆盖的应用程序,直到 android 修复它。
我终于明白了(至少在我的情况下)...它是 f**** File Manager 应用程序的服务。如果其服务停止,权限将再次生效。
https://play.google.com/store/apps/details?id=com.rhmsoft.fm
我在更新到 "MOB30M" 和 运行time 权限之前有这个应用程序,可以正常工作(这是我的日常工作)并且我一直在使用文件管理器来将发布的 APK 放入 phone 和 运行 以安装 APK。所以不是我今天安装的一些应用程序。
我最糟糕的是,一个应用程序可以使所有权限系统崩溃。
问题太大了
我知道权限系统没有崩溃,因为一个应用程序可以用来伪造对话框,但是 Android (Google) 不应该告诉你你有一个运行ning 位于顶部的应用程序,如果您想授予该应用程序权限,您应该卸载 XXXX 应用程序?我的意思是为了用户体验。
普通用户会认为他的 phone 坏了,可能会将 phone 发回给 google 或运营商 xD
来吧,老实说,不能android让它变得更好吗?不像你需要你的 phone root 才能有这种行为(我的 phone 没有 root)。如果你不通知用户发生了什么,那就是坏了
卸载File Manager并重新下载,"Allow"按钮突然又起作用了。
它的 android marshmallow 6.0.1 问题。
根据 Google 支持,他们正在解决这个问题
https://code.google.com/p/android/issues/detail?id=213120
我正要报告同样的问题,但这里已经注册了,我已经面临这个问题 2 个月了,不知道为什么,但是 'Allow' 按钮在我的 NEXUS 6P 中不起作用 phone还。
这个问题好像只有运行在nexus系列
@Google 和 android 团队:请解决这个问题,我们遇到这个问题的次数真的很烦人,我的意思是对于每个应用程序,需要继续设置手动设置权限的解决方法。
这真是个愚蠢的错误:/
在我的例子中 Clean Master 的 iSwipe 导致了这个问题,在他们的设置中禁用 ISWIPE 功能
在安装了 Android Marshmallow 最新更新的设备上 - 即 June2016 更新,当我请求权限时,ALLOW 按钮不起作用。
我已经用这两种设备进行了测试:
Nexus 6p(Android 版本 - 6.0.1,内部版本号 - MTC19V)
Nexus 7(Android 版本 6.0.1,内部版本号 - MOB30M)
两者都有最新的更新,当我请求权限时,会显示对话框,但我无法按下“允许”按钮。
这是我用来请求权限的代码:
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 中被标记为缺陷,它将在 OS 的未来版本中修复。 Bug report
编辑 2:文件管理器给我发邮件说他们在他们的应用程序中修复了这个功能。我没有再尝试文件管理器,但如果您更新应用程序,它应该不会再给您带来这个问题。但基本上这种行为可能来自任何以错误方式覆盖的应用程序,直到 android 修复它。
我终于明白了(至少在我的情况下)...它是 f**** File Manager 应用程序的服务。如果其服务停止,权限将再次生效。
https://play.google.com/store/apps/details?id=com.rhmsoft.fm
我在更新到 "MOB30M" 和 运行time 权限之前有这个应用程序,可以正常工作(这是我的日常工作)并且我一直在使用文件管理器来将发布的 APK 放入 phone 和 运行 以安装 APK。所以不是我今天安装的一些应用程序。
我最糟糕的是,一个应用程序可以使所有权限系统崩溃。
问题太大了
我知道权限系统没有崩溃,因为一个应用程序可以用来伪造对话框,但是 Android (Google) 不应该告诉你你有一个运行ning 位于顶部的应用程序,如果您想授予该应用程序权限,您应该卸载 XXXX 应用程序?我的意思是为了用户体验。
普通用户会认为他的 phone 坏了,可能会将 phone 发回给 google 或运营商 xD
来吧,老实说,不能android让它变得更好吗?不像你需要你的 phone root 才能有这种行为(我的 phone 没有 root)。如果你不通知用户发生了什么,那就是坏了
卸载File Manager并重新下载,"Allow"按钮突然又起作用了。
它的 android marshmallow 6.0.1 问题。 根据 Google 支持,他们正在解决这个问题 https://code.google.com/p/android/issues/detail?id=213120
我正要报告同样的问题,但这里已经注册了,我已经面临这个问题 2 个月了,不知道为什么,但是 'Allow' 按钮在我的 NEXUS 6P 中不起作用 phone还。 这个问题好像只有运行在nexus系列
@Google 和 android 团队:请解决这个问题,我们遇到这个问题的次数真的很烦人,我的意思是对于每个应用程序,需要继续设置手动设置权限的解决方法。
这真是个愚蠢的错误:/
在我的例子中 Clean Master 的 iSwipe 导致了这个问题,在他们的设置中禁用 ISWIPE 功能