【发布时间】:2016-11-21 12:38:29
【问题描述】:
我正在关注 MainActivity,它寻求 6.0 电话和存储任务的许可。它提示 许可 2 次,然后崩溃。获得权限后是否需要重新启动 MainActivity? 感谢您的任何帮助或指点。
MainActivity.java
onCreate(){
seek_permissions()
//load db data and continue
//with the app tasks
}
public void seek_permissions(){
boolean hasWritePermission = (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasWritePermission) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.MOUNT_FORMAT_FILESYSTEMS,Manifest.permission.RECEIVE_BOOT_COMPLETED,Manifest.permission.MODIFY_PHONE_STATE}, REQUEST_PERM);
}
}
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_PERM:
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
acquired_perm = 1;
}
else {Toast.makeText(MainActivity.this, "Please consider granting these permissions", Toast.LENGTH_LONG).show(); }
}
return;
}
}
【问题讨论】:
-
"它提示权限 2x 次然后崩溃" -- 请发布与崩溃相关的 Java 堆栈跟踪。
-
感谢您的回复,将尽快发布。
-
同样的问题,应用在 4.4 上运行良好,在 6.0+ 中崩溃
-
没有日志,没有异常,只是应用程序关闭并显示消息应用程序停止工作,在断点调试时我看到应用程序在
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE})行崩溃,我从详细级别非常仔细地检查了日志,但没有. -
@talha,我犯了一个错误,没有将这些权限添加到清单文件中。你也有同样的情况吗?你对 Android Manifest 有这些权限吗? stackoverflow.com/questions/32115650/…
标签: android android-6.0-marshmallow android-permissions