Я использую Android Studio версии 3.5 и язык Java.Я хочу получить местоположение пользователя, до которого я использую разрешения времени выполнения с помощью библиотеки Dexter: Github Dexter .Я могу предоставить и отклонить разрешение, но я не получаю местоположение пользователя от прослушивателя местоположения менеджера местоположений.
Мой код:
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 не вызывается.Куда я иду не так?
Спасибо за ваше время:)