如何使用Dexter获取android studio(java)中用户的当前位置以获得运行时权限?

如何使用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

我使用的是android studio 3.5版,语言是Java。我想获取用户的位置,在此位置之前,我将使用Dexter库实现运行时权限:。我可以授予和拒绝权限,但我无法从location manager的location listener获取用户的位置

我的代码:

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没有被调用。我哪里出错了?

谢谢您的时间:)

试试简易权限库,它很容易实现