解决Android 10/Android Q手机在后台无法正常定位问题
程序员文章站
2023-11-14 17:26:52
android 10 在2019年9月份正式发布,带来了一个非常重大的gps权限改变。为用户提供了 仅在使用此应用时允许。一旦用户选择“仅在使用此应用时允许”,就会导致app在后台或者...
android 10 在2019年9月份正式发布,带来了一个非常重大的gps权限改变。为用户提供了 仅在使用此应用时允许。一旦用户选择“仅在使用此应用时允许”,就会导致app在后台或者锁屏时候无法正常记录gps轨迹,这个对像滴滴出行、共享单车、跑步软件影响非常的大。
针对这个变化,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后台定位,如果用户不允许,就会提示下面的对话框。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。