Android判斷用戶是否可以獲取定位信息

1.是否註冊權限

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />  
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />  
<uses-permission android:name="android.permission.INTERNET" />  

2./判斷是否獲得定位權限

//判斷是否獲得定位權限
    private boolean checkPermissionGranted(String permission) {
        return PermissionChecker.checkPermission(this, permission, android.os.Process.myPid(), android.os.Process.myUid(), getPackageName()) == PackageManager.PERMISSION_GRANTED;
    }
    boolean isLocation1 = checkPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION);
        boolean isLocation2 = checkPermissionGranted(Manifest.permission.ACCESS_COARSE_LOCATION);
```if(isLocation1 && isLocation2) {
            //獲取成功的操作
            ...
        }else{
            Toast.makeText(MainActivity.this,"獲取位置失敗,未開啓定位權限!", Toast.LENGTH_SHORT).show();
        }

3.是否開啓定位服務

/**
* 判斷GPS是否開啓,GPS或者AGPS開啓一個就認爲是開啓的
* @param context
* @return true 表示開啓
*/
public static final boolean isOPenGPS(final Context context) {
LocationManager locationManager
= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
// GPS定位
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// 網絡服務定位
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
}

    return false;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章