Shy*_*dda 17 android android-location android-permissions
我无法在 SDK 29 中获得位置的“始终允许”提示。我已经在清单中设置了这些权限:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
并请求用户在运行时允许这些权限。但它只返回“当应用程序打开时”和“拒绝”选项。
关于如何在 SDK 29 中显示它的任何想法。
小智 13
在清单和权限数组中添加“ACCESS_BACKGROUND_LOCATION” 。如果您只在清单中添加权限,则不会显示“始终允许”选项。您需要添加数组以要求用户在运行时授予。
在清单中:
<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" />
Run Code Online (Sandbox Code Playgroud)
在您的活动中:
if (ContextCompat.checkSelfPermission( this.applicationContext, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this@MainActivity, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_BACKGROUND_LOCATION), MY_PERMISSIONS_REQUEST_LOCATION)
} else {
// permission granted
}
Run Code Online (Sandbox Code Playgroud)
sat*_*ser 12
为了在运行 Android 10(API 级别 29)或更高版本的设备上访问后台位置,您还需要在清单文件中使用以下权限
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
请参考以下链接了解更多信息
https://developer.android.com/training/location/permissions?hl=fr
ACCESS_BACKGROUND_LOCATION
在清单中添加权限。需要在 android 10 及更高版本上显示始终允许选项。
参见https://developer.android.com/training/location/background#evaluate 中的第二点
归档时间: |
|
查看次数: |
16042 次 |
最近记录: |