【Android 入門開發實戰:口罩地圖】檢查GPS狀態
【Android 入門開發實戰:口罩地圖】線上免費講義課程目錄
獲取到定位權限之後,需要檢查GPS是否開啟,若未開啟,引導使用者前去開啟,已經開啟,則可以開始獲取經緯度。
檢查GPS是否開啟
透過 LocationManager 其中的 isProviderEnabled 方法來檢查GPS是否開啟,若未開啟,則彈跳出詢問視窗,引導使用者前往設定開啟。若已經開啟,則可以開始獲取經緯度。
private fun checkGPSState() {
val locationManager = mContext.getSystemService(Context.LOCATION_SERVICE) as LocationManager
if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
AlertDialog.Builder(mContext)
.setTitle("GPS 尚未開啟")
.setMessage("使用此功能需要開啟 GSP 定位功能")
.setPositiveButton("前往開啟",
DialogInterface.OnClickListener { _, _ ->
startActivityForResult(
Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS), REQUEST_ENABLE_GPS
)
})
.setNegativeButton("取消", null)
.show()
} else {
//todo getDeviceLocation()
Toast.makeText(this, "已獲取到位置權限且GPS已開啟,可以準備開始獲取經緯度", Toast.LENGTH_SHORT).show()
}
}
輸出結果
引導前往GPS設定開啟
GPS 設定的 callBcak 事件
在前往設定頁上,我們有加入 REQUEST_ENABLE_GPS ,設定返回時會收到回應值。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
...
REQUEST_ENABLE_GPS -> {
checkGPSState()
}
}
}
程式碼範例
範例名稱:檢查GPS狀態
開發人員:HKT (侯光燦)
程式語言:Kotlin
開發環境:Android Studio 4.1.2 & Android 11 & Kotlin 1.4.30
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載