在我的应用程序中,我需要访问 4 个权限(已在清单中声明)
<uses-permission android:name="android.permission.ACCESS_COARSE_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.FOREGROUND_SERVICE" />
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我检查我是否已经拥有权限,如果没有:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(
arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION), 1)
} else {
ActivityCompat.requestPermissions(this, arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_BACKGROUND_LOCATION), 1)
}
Run Code Online (Sandbox Code Playgroud)
这段代码可以在我的模拟器中运行,该模拟器有 29 个 API。但在我自己的设备上,不会显示权限弹出窗口。你们知道为什么吗?
Geo*_*cks 30
现在不再允许任何面向 API 30 的 Android 应用在请求常规位置权限的同时请求 BACKGROUND_PERMISSION。你必须将其分成两个单独的问题:
| 归档时间: |
|
| 查看次数: |
13668 次 |
| 最近记录: |