您的位置:首页 > 编程语言

小米运行时权限---代码中获取为granted,授权管理中显示为询问

2017-10-09 21:40 148 查看
今天使用百度的一个离线TTS播报的官方demo,刚开始运行的蛮好,后面重新装的时候直接奔溃,代码中显示创建文件失败造成的,这个肯定就是权限问题了,但是代码中和manifest文件中都正常申请了权限,按理说不会有问题,一直怀疑是小米手机的坑,上网找也没解决掉。

这个问题的奇葩之处就在于
PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, permission)
在代码中是成立的。

最后的解决方案是:

1. 我将手机中权限索性关掉,这个时候
PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, permission)
在代码中不成立了,这个时候再将权限打开,权限正常,再关掉的时候提示该程序未适配新版本权限。

2. 这个时候,去
build.gradle
文件中查看,其中代码如下:

compileSdkVersion 25
buildToolsVersion "26.0.1"

defaultConfig {
applicationId "com.baidu.tts.sample"
minSdkVersion 9
targetSdkVersion 19
}
//targetSdkVersion < compileSdkVersion,这个我之前没有这么写过,将targetSdkVersion改为25,问题解决


解决方式就是这么奇葩,至于targetSdkVersion。参考

Android targetSdkVersion 原理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐