Не удается найти местоположение пользователя - PullRequest
0 голосов
/ 27 сентября 2019

Итак, я попытался определить местоположение пользователей и хотел, чтобы оно всплыло как Toast() или в журналах, но ничего не происходит.

Я добавил <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> в манифест, и этомой класс:

public class MainActivity extends AppCompatActivity {

private LocationManager locationManager;
private LocationListener locationListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Get the users location
    locationManager = (LocationManager) 
this.getSystemService(Context.LOCATION_SERVICE);

    locationListener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {

            Log.i("LOCATION", location.toString());
            Toast.makeText(MainActivity.this, location.toString(), 
Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle 
extras) {

            Log.i("STATUS", String.valueOf(status));
        }

        @Override
        public void onProviderEnabled(String provider) {

        }

        @Override
        public void onProviderDisabled(String provider) {

        }
    };

    // Ask users permission to get location
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION},1);
    } else {
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == 1) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
                locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,locationListener);
            }
        }
    }
}
}

Приложение запрашивает разрешение в первый раз, и после того, как я его принимаю, оно не показывает никаких признаков получения местоположения методом OnStatusChanges().Я пытался получить lastKnownLocation(), и это работает, но это все ...

Есть идеи, чего не хватает?

Спасибо!

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