首发于 Android摸索
Android在fragment中请求权限后onRequestPermissionsResult没有被执行

Android在fragment中请求权限后onRequestPermissionsResult没有被执行

本文源自 道招网 Android在fragment中请求权限后onRequestPermissionsResult没有被执行

Android上有的权限需要手动申请权限的,比如 android.permission.READ_CONTACTS

即使你在AndroidManifest.xml中已经声明了也不行

<uses-permission android:name="android.permission.READ_CONTACTS" />

问题原因

这是android6.0以后的要求,要求程序自行手动申请权限。

场景示例

比如我的应用点击某个按钮之后需要读取联系人列表,待用户选择某个具体联系人后需要读取该联系人的电话号码,这步操作是需要 android.permission.READ_CONTACTS 权限的。

我们需要在执行到必要步骤时判断是否拥有权限,没有的话让用户授权

if (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.READ_CONTACTS)) {
   // 直接执行