如何使用Dexter获取android studio(java)中用户的当前位置以获得运行时权限?
我使用的是android studio 3.5版,语言是Java。我想获取用户的位置,在此位置之前,我将使用Dexter库实现运行时权限:。我可以授予和拒绝权限,但我无法从location manager的location listener获取用户的位置 我的代码:如何使用Dexter获取android studio(java)中用户的当前位置以获得运行时权限?,android,android-studio,Android,Android Studio,我使用的是android studio 3.5版,语言是Java。我想获取用户的位置,在此位置之前,我将使用Dexter库实现运行时权限:。我可以授予和拒绝权限,但我无法从location manager的location listener获取用户的位置 我的代码: public class MainActivity extends AppCompatActivity { LocationManager locationManager; LocationListener loc
public class MainActivity extends AppCompatActivity {
LocationManager locationManager;
LocationListener locationListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
runtimePermission();
locationManager = (LocationManager) this.getSystemService(this.LOCATION_SERVICE);
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
Log.i("My Location: ", location.toString());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
};
}
public void runtimePermission() {
Dexter.withActivity(this)
.withPermission(Manifest.permission.ACCESS_FINE_LOCATION)
.withListener(new PermissionListener() {
@SuppressLint("MissingPermission")
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
Log.i("Permission", "Granted");
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package",getPackageName(),null);
intent.setData(uri);
startActivity(intent);
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
token.continuePermissionRequest();
}
}).check();
}
}
可以在Logcat中看到“已授予权限”,但无法看到我的位置。我猜LocationListener没有被调用。我哪里出错了?谢谢您的时间:)试试简易权限库,它很容易实现