admin管理员组文章数量:1612097
- 错误异常
- 产生原因
- 解决办法
- 参考链接
错误异常
java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has android.permission.READ_PHONE_STATE.
这里的getDeviceId可能是获取系统状态或内容的操作,最后的android.permission.READ_PHONE_STATE 也可能是其它权限,具体可以查看 Android文档中的权限分组 。
产生原因
使用Android Studio编译项目的时候将 app/build.gradle 中的 defaultConfig 设置中的 targetSdkVersion 设置为了23, 这样 Android Studio在编译的时候会使用 Android 23 API即Android 6.0来编译项目,但是,如果你没有给项目加上动态权限请求的话,你的应用在安装到手机的时候将不会获取任何权限!!!可以去查看应用的应用信息,其中的 Permissions 权限列表中所有的权限组都是关闭状态。
解决办法
如果你需要紧急避免自己的应用继续在Android 6.0的系统上崩溃,可以将app/build.gradle中的 targetSdkVersion和compileSdkVersion设置为22或以下版本,这样的话,编译出来的app会在Android 6.0上以兼容模式运行,可以获取需要的权限,但随着Android 6.0的普及,我还是推荐大家尽量给项目加上动态权限时的判断以及逻辑处理。
参考链接
http://stackoverflow/questions/33078003/android-6-0-permission-error
http://stackoverflow/questions/32742327/neither-user-10102-nor-current-process-has-android-permission-read-phone-state
转载自:http://www.th7/Program/Android/201604/841700.shtml
本文标签: SecurityExceptiongetDeviceIdlangandroidJava
版权声明:本文标题:【Android】java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has andro 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728630640a1167046.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论