Compose权限选择仅显示DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION,如何添加定位权限?
解决Compose中定位权限无法在选择列表显示的问题
检查Manifest权限声明的正确性
确保在AndroidManifest.xml的<manifest>根标签下(而非<application>内部)添加正确的权限代码,拼写和格式不能出错:<!-- 粗略定位权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 精确定位权限 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- Android 12及以上版本,若需后台定位需额外添加 --> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />直接手动引用权限常量
Android Studio的权限选择列表有时不会完整加载所有危险权限,无需纠结列表显示,直接在代码中使用系统提供的权限常量即可。比如在Compose权限请求逻辑里:val requiredPermissions = arrayOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION ) val permissionLauncher = rememberLauncherForActivityResult( contract = ActivityResultContracts.RequestMultiplePermissions() ) { permissions -> // 处理权限申请结果 }排查Manifest合并问题
如果是在Library模块中声明的权限,要确认App模块的AndroidManifest.xml没有通过tools:node="remove"等操作移除这些权限。建议直接在App模块的Manifest中添加权限,避免合并冲突。刷新IDE缓存
若IDE缓存导致权限列表未更新,通过File > Invalidate Caches... > Invalidate and Restart重启Android Studio,之后再查看权限选择列表。
内容的提问来源于stack exchange,提问作者SzypkiAleWolnyIDK
相关产品推荐
相关产品推荐

