【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
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載

這個網誌中的熱門文章

16天記下7000單字

2023 最新入門零基礎 Kotlin教學【從零開始學 Kotlin 程式設計】Kotlin 教學課程目錄 (Android Kotlin, IntelliJ IDEA, Android Studio, Android APP 開發教學)

nano 文字編輯器

2022 最新入門零基礎 Flutter教學 【Flutter 程式設計入門實戰 30 天】Flutter 教學課程目錄 (IntelliJ IDEA 開發教學)

【從零開始學 Flutter 程式設計】SharedPreferences 設定檔資料存取