2
我正在嘗試實現位置的運行時權限。實現如下:Android 6.0位置權限
public class MyLocationManager implements android.location.LocationListener, ActivityCompat.OnRequestPermissionsResultCallback {
private static LocationManager m_locationManager;
private static final int REQUEST_COARSE_LOCATION = 999;
private static final int REQUEST_FINE_LOCATION = 998;
private String provider;
private Context mContext;
public void startListenLocation(Context context) {
this.mContext = context;
m_locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
...
if (Build.VERSION.SDK_INT >= 23 && ((ContextCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION)) != PackageManager.PERMISSION_GRANTED)) {
ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, REQUEST_COARSE_LOCATION) ;
} else {
Location location = m_locationManager.getLastKnownLocation(provider);
}
...
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode) {
case REQUEST_COARSE_LOCATION: {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
//compiler error on the following line
Location myLocation = m_locationManager.getLastKnownLocation(provider);
} else {
//Permission denied
}
return;
}
}
}
}
我得到一個語法錯誤,當我在onRequestPermissionResult()
打電話getLastKnownLocation()
。它告訴我再次檢查許可,即使我已經這樣做了。因此,誰能告訴什麼是錯我的執行這裏