我的应用程序在清单中具有以下权限:
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我通过 Android 11 手机中的“设置”手动启用了所有权限。但是,如果我使用ActivityCompat.checkSelfPermission(this,(Manifest.permission.READ_PHONE_STATE))
检查是否READ_PHONE_STATE
已授予许可,结果始终是PERMISSION_DENIED
.
然后我用了ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), 102)
,这只是调用onRequestPermissionsResult
与资助结果PERMISSION_DENIED
立即地。
我在两台 Android 11 设备(一台物理设备,一台模拟器)上复制了此内容,并尝试更改包名称、卸载并重新安装应用程序等。
我知道出了什么问题了。我包含的图书馆之一有这个:
Library's Manifest
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
android:maxSdkVersion="29" />
即使我在应用程序清单中定义了此权限,maxSdkVersion
进入我的应用程序。
解决方案是删除maxSdkVersion
您的应用程序中的属性:
App's Manifest
<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:remove="android:maxSdkVersion" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)