解決Android 10/Android Q手機(jī)在后臺(tái)無(wú)法正常定位問(wèn)題
Android 10 在2019年9月份正式發(fā)布,帶來(lái)了一個(gè)非常重大的GPS權(quán)限改變。為用戶提供了 僅在使用此應(yīng)用時(shí)允許。一旦用戶選擇“僅在使用此應(yīng)用時(shí)允許”,就會(huì)導(dǎo)致APP在后臺(tái)或者鎖屏?xí)r候無(wú)法正常記錄GPS軌跡,這個(gè)對(duì)像滴滴出行、共享單車、跑步軟件影響非常的大。

針對(duì)這個(gè)變化,Google也給出了新的 解決方案。
第一步:升級(jí)SDK
修改build.gradle,升級(jí)APP的 compileSdkVersion 和 targetSdkVersion。
android {
compileSdkVersion 29
defaultConfig {
targetSdkVersion 29
}
}
第二步:增加后臺(tái)定位權(quán)限
修改 AndroidManifest.xml 文件,增加 ACCESS_BACKGROUND_LOCATION權(quán)限,并且為對(duì)應(yīng)的服務(wù)增加 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>
第三步:申請(qǐng)后臺(tái)定位權(quán)限
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)
}
通過(guò)以上方法,就可以獲取用戶是否允許APP后臺(tái)定位,如果用戶不允許,就會(huì)提示下面的對(duì)話框。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android制作一個(gè)錨點(diǎn)定位的ScrollView
- android加密參數(shù)定位實(shí)現(xiàn)方法
- Android 簡(jiǎn)單服務(wù)定位器模式實(shí)現(xiàn)
- Android Studio使用Profiler來(lái)完成內(nèi)存泄漏的定位
- 解決Android原生定位的坑
- Android實(shí)現(xiàn)點(diǎn)擊某個(gè)按鈕指定位置彈出布局
- Android RecycleView滑動(dòng)停止后自動(dòng)吸附效果的實(shí)現(xiàn)代碼(滑動(dòng)定位)
- Android 百度地圖定位實(shí)現(xiàn)仿釘釘簽到打卡功能的完整代碼
- android studio 使用Mocklocation虛擬定位
- Android實(shí)現(xiàn)高德地圖顯示及定位
- Android如何實(shí)現(xiàn)模擬定位
相關(guān)文章
Android編程實(shí)現(xiàn)自定義ImageView圓圖功能的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義ImageView圓圖功能的方法,結(jié)合實(shí)例形式分析了Android自定義ImageView及實(shí)現(xiàn)圓圖效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法
這篇文章主要介紹了Android開發(fā)獲取系統(tǒng)中已安裝程序信息的方法,可實(shí)現(xiàn)Android針對(duì)系統(tǒng)中已安裝程序名稱、路徑、大小、圖標(biāo)、是否為系統(tǒng)app等信息的獲取功能,需要的朋友可以參考下2017-12-12
ShareSDK造成App崩潰的一個(gè)BUG原因分析以及Fix方法
這篇文章主要介紹了ShareSDK造成App崩潰的一個(gè)BUG原因分析以及Fix方法,使用的是Cocos2d-x專用ShareSDK組件,需要的朋友可以參考下2014-04-04
Android中通過(guò)MediaStore獲取音樂文件信息方法
這篇文章主要介紹了Android中通過(guò)MediaStore獲取音樂文件信息方法,本文講解了獲取歌曲的名稱、歌曲的專輯名、歌曲的歌手名、歌曲文件的全路徑、歌曲文件的名稱、歌曲文件的發(fā)行日期等音樂文件信息的方法,需要的朋友可以參考下2015-04-04
Android異步回調(diào)中的UI同步性問(wèn)題分析
這篇文章主要為大家詳細(xì)分析了Android異步回調(diào)中的UI同步性問(wèn)題,感興趣的小伙伴們可以參考一下2016-06-06
android中webview控件和javascript交互實(shí)例
這篇文章主要介紹了android中webview控件和javascript交互實(shí)例,例子中包括javascript調(diào)用java的方法,java代碼中調(diào)用javascript的方法,需要的朋友可以參考下2014-07-07

