欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

解决Android 10/Android Q手机在后台无法正常定位问题

程序员文章站 2022-06-20 14:51:08
android 10 在2019年9月份正式发布,带来了一个非常重大的gps权限改变。为用户提供了 仅在使用此应用时允许。一旦用户选择“仅在使用此应用时允许”,就会导致app在后台或者...

android 10 在2019年9月份正式发布,带来了一个非常重大的gps权限改变。为用户提供了 仅在使用此应用时允许。一旦用户选择“仅在使用此应用时允许”,就会导致app在后台或者锁屏时候无法正常记录gps轨迹,这个对像滴滴出行、共享单车、跑步软件影响非常的大。

解决Android 10/Android Q手机在后台无法正常定位问题

针对这个变化,google也给出了新的 。

第一步:升级sdk

修改build.gradle,升级app的 compilesdkversion 和 targetsdkversion。

android {
  compilesdkversion 29
  defaultconfig {
    targetsdkversion 29
  }
}

第二步:增加后台定位权限

修改 androidmanifest.xml 文件,增加 access_background_location权限,并且为对应的服务增加 android:foregroundservicetype="location"。

<manifest >
  <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" />
  <application>
    <service android:name=".exampleservice" android:foregroundservicetype="location" />
  </application>
</manifest>

第三步:申请后台定位权限

if (build.version.sdk_int >= build.version_codes.q) {
  activitycompat.requestpermissions(this,arrayof(manifest.permission.access_coarse_location,
    access_background_location
  ),101)
} else {
  activitycompat.requestpermissions(this,arrayof(manifest.permission.access_coarse_location),101)
}

通过以上方法,就可以获取用户是否允许app后台定位,如果用户不允许,就会提示下面的对话框。

解决Android 10/Android Q手机在后台无法正常定位问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。