Как получить текущее местоположение пользователя в Android Studio (Java), используя Декстер для разрешения времени выполнения? - PullRequest
0 голосов
/ 21 сентября 2019

Я использую 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 не вызывается.Куда я иду не так?
Спасибо за ваше время:)

1 Ответ

0 голосов
/ 22 сентября 2019

простая библиотека разрешений, которую легко реализовать Простая библиотека разрешений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...