Android反向地理代码

时间:2016-05-27 04:56:55

标签: android permissions

public Location getLocation(String provider) {
    if (locationManager.isProviderEnabled(provider)) {

                  locationManager.requestLocationUpdates(provider,
                MIN_TIME_FOR_UPDATE, MIN_DISTANCE_FOR_UPDATE, this);
        if (locationManager != null) {
            location = locationManager.getLastKnownLocation(provider);
            return location;
        }
    }
    return null;
}

我收到一个错误调用需要权限,可能会被user拒绝。它可以解决吗?

在清单中,我提供了这些权限

 

1 个答案:

答案 0 :(得分:0)

   private void checkPermission() {
   if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.ACCESS_FINE_LOCATION)
        != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this,
        Manifest.permission.ACCESS_COARSE_LOCATION)
        != PackageManager.PERMISSION_GRANTED) {

    ActivityCompat.requestPermissions(this,
            new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION},
            MY_PERMISSIONS_REQUEST_FINE_LOCATION);

} else {
    getLocation();
}

}

 @Override
    public void onRequestPermissionsResult(int requestCode,
                                   String permissions[], int[] grantResults)       {
switch (requestCode) {
    case MY_PERMISSIONS_REQUEST_FINE_LOCATION: {
        // If request is cancelled, the result arrays are empty.
        if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // permission was granted, yay! Do the
            // contacts-related task you need to do.
         getLocation();
        } else {
            // permission denied, boo! Disable the
        }
        return;
    }
}
  }