Я просто пытаюсь написать метод, который возвращает широту и долготу. У меня есть активность с кнопкой и двумя текстовыми полями. Класс Java, который я использую, расширяет AppCompatActivity
и реализует LocationListener
. Когда кнопка нажата, нажимается следующий метод:
public void startGPS(View view)
{
// Here is the code to handle permissions - you should not need to edit this.
if ( Build.VERSION.SDK_INT >= 23 &&
ContextCompat.checkSelfPermission( this, android.Manifest.permission.ACCESS_FINE_LOCATION ) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission( this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[] { android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION }, TAKE_PHOTO_PERMISSION);
}
Location location = locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, this);
}
Позже я пытаюсь распечатать свое местоположение в моем методе onLocationChanged
, но это приводит к сбою приложения. Я прогнал его через отладчик и обнаружил, что местоположение всегда было null
.
Я попытался использовать это решение, но оно не сработало. Другие примеры вызывают функцию в onResume
, но мне действительно нужно, чтобы это было в методе startGPS
.
Кроме того, есть ли шанс, что ошибка только с моим устройством? Я запускаю его на Nexus 7, у которого, похоже, нет никаких проблем при запуске Google Maps.