現在的智慧型手機可能安裝了地圖或是氣象預報的程式,它們大多是利用內建的 GPS 衛星定位來判斷持有者目前的位置。假設今天筆者要利用 Google APIs 來開發一些地圖程式時,若 GPS 未開啟可是會無法取得正確的位置資料。
因此,在開發會需要用到 GPS 功能的話,咱們得在一開始執行前先判斷 GPS 服務是否已經開啟了。
Android 中提供了 LocationManager 來管理跟地理位置相關的功能及服務:
檢視原始碼 Android
1 2 3 4 5 6 7 | import android.content.Context; import android.location.LocationManager; public static boolean isGPSEnabled(Context context){ LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); } |
先使用 getSystemService() 取得 Context.LOCATION_SERVICE 後,再用 LocationManager 的 isProviderEnabled() 來判斷 LocationManager.GPS_PROVIDER 是否開啟。
最後當然也是要先取得 android.permission.ACCESS_FINE_LOCATION 權限才行的,因此要在 AndroidManifest.xml 中再加上
檢視原始碼 XML
1 | <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
這樣咱們就能在程式中加入檢查 GPS 的開啟狀態,只要未開啟時就能提醒使用者先開啟 GPS 衛星定位後才能正常的使用。