【问题标题】:Android activity cannot resolve symbol ACCESS_BACKGROUND_LOCATIONAndroid 活动无法解析符号 ACCESS_BACKGROUND_LOCATION
【发布时间】:2021-04-19 10:02:34
【问题描述】:

我正在尝试检查访问后台位置的权限。

我已经访问过这个Cannot resolve Manifest.permission.ACCESS_FINE_LOCATION 我已经检查了所有提供的解决方案。他们都没有解决我的问题。

这是我在 Manifest 文件中的代码:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

这是我尝试检查权限的方式:

boolean backgroundLocationPermissionApproved =
       ActivityCompat.checkSelfPermission(this,
           permission.ACCESS_BACKGROUND_LOCATION)
           == PackageManager.PERMISSION_GRANTED;

我收到此错误:

error: cannot find symbol static checkBackGroundLocationPermissions

任何想法都将不胜感激。

【问题讨论】:

  • 使用这个库:github.com/ParkSangGwon/TedPermission 它非常简单并且完美地处理权限。
  • 这样写权限 Manifest.permission.ACCESS_BACKGROUND_LOCATION
  • @EliasFazel 我试过了。没有任何区别。
  • 在调用 checkSelfPermission() 时粘贴更多活动代码

标签: android android-manifest


【解决方案1】:

我找到了自己问题的答案。所以我把它贴在这里以防其他人有同样的问题。

基本上,我试图请求后台位置跟踪的许可。事实证明,仅当您已将应用升级为使用 Android 10 (Android Q) 时,才需要请求许可。 要检查您的应用程序是否需要权限,只需转到 build.gradle 文件并检查您的 targetSdkVersion。如果它低于 29,比如我的情况是 27,那么您不需要检查后台位置跟踪的权限。 但是,通过将 targetSdkVersion 设置为 29 并升级所有依赖项来升级您的应用以使用 Android 10 是一个很好的做法。

对于这个答案,我无法获得 ACCESS_BACKGROUND_LOCATION 仅仅是因为如果您尚未将应用升级到 sdk 29,android.Manifest 不支持该权限。 有关更多信息,请考虑访问以下页面:https://developer.android.com/about/versions/10/privacy/changes

注意: 正如@LordParsley 的评论所示:

  • 需要更改compileSdkVersion(不仅仅是targetSdkVersion)。

【讨论】:

  • 谢谢,很遗憾,您找不到任何有关此新权限的文档。
  • 关于这一点的小提示,您必须设置compileSdkVersion 而不仅仅是targetSdkVersion
  • 不改变compileSdkVersion你知道怎么做吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 2018-06-17
  • 2016-06-15
相关资源
最近更新 更多