在製作定位功能時,遇到了一種情況:
當使用者有提供位置權限後,還是抓不到位置
結果原來是根本沒有開啟位置(定位)功能
這邊可以偵測使用者是否有開啟位置資訊功能,若無,就引導他去設定畫面
1.在AndroidManifest.xml中加入權限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.使用LocationManager來偵測位置開啟狀態
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); //檢查位置功能是否有開啟 if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { //位置功能有開啟,可以開始抓取經緯度等功能 startLocationService(); }else{//引導到開啟位置頁面 Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent, 100); }
3.在onActivityResult接收頁面返回的事件
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(requestCode == REQUEST_LOCATION){ //可以在這邊再次判斷是否有開啟位置功能 //或是直接執行定位程式碼部分 startLocationService(); } }
-END-
發佈留言