Android中RequestMultiplePermissions后READ_SMS权限始终未授权问题
Android请求SEND_SMS和READ_SMS权限后,READ_SMS始终显示未授权的解决办法
问题场景
实现运行时权限请求逻辑时,需要在未授予权限时请求SEND_SMS和READ_SMS权限。但测试发现,即使在权限弹窗中允许了所有权限,调试结果依然显示SEND_SMS=true、READ_SMS=false。
问题根源
排查后确认,核心原因是未在AndroidManifest.xml中声明READ_SMS权限。Android的危险权限要求必须同时满足两个条件才能正常生效:
- 在清单文件中提前声明权限
- 在代码中发起运行时权限请求
若缺少清单声明,即使用户在弹窗中点击允许,系统也不会真正授予该权限,导致权限检测始终返回false。
解决方案
- 打开项目中的
AndroidManifest.xml文件 - 在
<manifest>标签内部添加READ_SMS权限声明,同时确认SEND_SMS权限已声明:
<!-- 确保SEND_SMS权限已声明 --> <uses-permission android:name="android.permission.SEND_SMS" /> <!-- 添加缺失的READ_SMS权限声明 --> <uses-permission android:name="android.permission.READ_SMS" />
- 重新编译运行项目,再次触发权限请求后,即可正常获取
READ_SMS的授权状态。
内容的提问来源于stack exchange,提问作者user21917572
相关产品推荐
相关产品推荐

