ACCESS_FINE_LOCATION 对话框未显示 android 12
ACCESS_FINE_LOCATION dialog not showing android 12
我在应用程序中请求 FINE_LOCATION 时遇到了一些问题。
我试着阅读了一些关于 ACCESS_FINE_LOCATION 的内容,我知道我应该将它与 ACCESS_COARSE_LOCATION 一起用于 android 12,但它似乎每次都只向我显示“大概位置”我问。它甚至不要求 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) }
}
我尝试在 android 31 模拟器上 运行 和 android 12 上的 phone。结果相同。从来没有得到好的位置,只是粗略的位置。它似乎适用于所有其他 android 版本,它只是 android 12 个好的位置东西阻止了我。
有人知道我可以去哪里解决这个问题吗?非常感谢!
感谢 lasagnakid77,我终于让它工作了,谢谢!
只需将 tools:remove="android:maxSdkVersion" 添加到 LOCATION_PERMISSION 中,如下所示:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:remove="android:maxSdkVersion" />
这里有一个很好的解释:
我在应用程序中请求 FINE_LOCATION 时遇到了一些问题。 我试着阅读了一些关于 ACCESS_FINE_LOCATION 的内容,我知道我应该将它与 ACCESS_COARSE_LOCATION 一起用于 android 12,但它似乎每次都只向我显示“大概位置”我问。它甚至不要求 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) }
}
我尝试在 android 31 模拟器上 运行 和 android 12 上的 phone。结果相同。从来没有得到好的位置,只是粗略的位置。它似乎适用于所有其他 android 版本,它只是 android 12 个好的位置东西阻止了我。
有人知道我可以去哪里解决这个问题吗?非常感谢!
感谢 lasagnakid77,我终于让它工作了,谢谢!
只需将 tools:remove="android:maxSdkVersion" 添加到 LOCATION_PERMISSION 中,如下所示:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:remove="android:maxSdkVersion" />
这里有一个很好的解释: