在製作定位功能時,遇到了一種情況:
當使用者有提供位置權限後,還是抓不到位置
結果原來是根本沒有開啟位置(定位)功能
這邊可以偵測使用者是否有開啟位置資訊功能,若無,就引導他去設定畫面
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-
發佈留言