Android 6.0
我遇到的问题是,我在明明在AndroidManifest.xml中添加了READ_PHONE_STATE权限,可是在我的手机上一直报错,错误信息如下:

getDeviceId: Neither user 10254 nor
current process has android.permission.READ_PHONE_STATE.

java.lang.SecurityException: getDeviceId:
has android.permission.READ_PHONE_STATE.
后来发现,其他非android6.0的系统都是正常的,还有一个问题,是我为了兼容android的样式,吧targetSdkVersion 19改成了targetSdkVersion 23,所以android6.0在同事的targetSdkVersion 19上运行是没问题的。

这个问题产生有几个条件:
你的测试机是android6.0以上版本;
你的编译环境的 targetSdkVersion 23;
你在代码中没有做权限的请求处理;
产生问题的原因:
android 6.0以上增加了动态获取权限api,想要动态获取手机的权限。类似iOS那样,在使用时,弹出对话框,提示用户,请求用户允许。如果你没做处理,就会报错。
现在给你两个链接,应该可以帮助我们解决这个问题:

问题的描述:

https://stackoverflow.com/questions/32635704/cant-get-the-permission

解决的方法:

https://developer.android.com/intl/zh-cn/training/permissions/requesting.html

Demo详解地址:
http://www.jianshu.com/p/dbe4d37731e6
Demo下载地址:
https://github.com/SpikeKing/wcl-permission-demo

谈谈Android 6.0运行时权限理解

文/小M的情怀(简书作者)
原文链接:http://www.jianshu.com/p/c17fe97c8924
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

更多相关文章

  1. Android(安卓)6.0 ContextCompat中不包含CheckSelfPermission异
  2. android 简单推送socket长链接
  3. Android中所有API和对应权限的数据结构构建
  4. 【Android】AndroidManifest 清单文件以及权限详解
  5. [置顶] Android超精准计步器开发-Dylan计步
  6. android中sqlite操作
  7. 关于android 悬浮窗和自启动的设置, 以及获取系统的信息
  8. android 自定义权限 permission
  9. Android如何通过shareduserid获取系统权限

随机推荐

  1. Android(安卓)Q适配(3)-------唯一标识符篇
  2. Flutter学习笔记
  3. Android(安卓)百度地图 计算两点之间的距
  4. Android读取文件方法总结
  5. Android使用PULL解析和生成XML文件
  6. om.android.builder.model.SourceProvide
  7. Android 依赖注入函数库Roboguice(一)
  8. Android(安卓)去掉标题栏,状态栏,导航栏
  9. android TextView 结合SpannableString对
  10. Android(安卓)okhttp3封装