我在我的应用程序中请求FINE_LOCATION时遇到了一些困难。
我尝试阅读有关ACCESS_FINE_LOCATION的一些资料,并知道我应该在Android 12中与ACCESS_COARSE_LOCATION一起请求它,但似乎每次我请求时都只显示我“大致位置”。 它甚至没有要求FINE_LOCATION。
这是我的代码:
清单:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
代码:
//asking for permission inside a method
requestMultiplePermissions.launch(arrayOf(ACCESS_FINE_LOCATION, ACCESS_COARSE_LOCATION ))
// registering activity for result.
activity.registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
if(permissions.entries.all { it.value }){
checkPermissionsAndContinue()
}else{
val deniedPermission = permissions.entries.find { !it.value }
deniedPermission?.key?.let { showPermissionDeniedDialog(it) }
}
我尝试在安卓31模拟器和我的安卓12手机上运行,但结果一样。始终无法获取精确位置,只有粗略位置。对于其他所有安卓版本都能正常工作,唯独在安卓12上出现了问题。
是否有人有想法,可以给我指点一下如何修复这个问题呢?非常感谢!