hak*_*ine 39 permissions android android-6.0-marshmallow
在已安装Android Marshmallow最新更新的设备上 - 即2016年6月更新,当我要求权限时,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();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于如何解决这个问题,有任何的建议吗?提前致谢!
编辑
以下是Google的错误报告.我们还在等待谷歌的修复.
编辑1
这个问题已被解决!
Jav*_*ira 55
编辑:它已被标记为最后一个android中的缺陷,它将在未来的操作系统版本中修复.错误报告
编辑2:文件管理员给我发电子邮件,他们在他们的应用程序中修复此功能.我还没有尝试过文件管理器,但是如果你更新应用程序它不应该再给你这个问题了.但基本上这种行为,可能来自任何应用程序以错误的方式覆盖,直到android修复它.
我终于得到了它(至少在我的情况下)...它是f****文件管理器应用程序的服务.如果其服务已停止,则权限将再次起作用.
https://play.google.com/store/apps/details?id=com.rhmsoft.fm
我在更新"MOB30M"之前有这个应用程序和运行时权限,在那里工作没有问题(是我的日常工作来编程)我一直在使用文件管理器将发布APK放入手机并运行它来安装APK.所以我今天安装的应用程序不是.
我资金可怕的是,一个应用程序可以使所有权限系统崩溃.
这是和过度的问题
我知道权限系统没有崩溃,因为一个应用程序可以用来伪造对话框,但不应该Android(谷歌)告诉你,你有一个运行在顶部的应用程序,如果你想授予你应该卸载XXXX app的应用程序的权限?我的意思是为了用户体验.
普通用户会认为他的手机坏了,可能会将手机发回谷歌或运营商xD
来吧,老实说,不能让这个更好吗?是不是你需要你的手机有这种行为(我的手机没有root).如果你没有告诉用户发生了什么,那就像是坏了
归档时间: |
|
查看次数: |
18070 次 |
最近记录: |