Как получить местоположение GPS пользователя на устройстве Android (2.2) - PullRequest
1 голос
/ 11 февраля 2011

Я пытаюсь просто получить местоположение пользователя GPS, но мое приложение вылетает при попытке определить широту и долготу устройства.См. Код для определения места ошибки ..

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    final double longitude = location.getLongitude();  //error occurs here
    final double latitude = location.getLatitude();    //and here

    LocationListener locationListener = new LocationListener() {
        public void onLocationChanged(Location location) {
          // Called when a new location is found by the network location provider.
            //longitude = location.getLongitude();
            //latitude = location.getLatitude();
        }
        public void onStatusChanged(String provider, int status, Bundle extras) {}
        public void onProviderEnabled(String provider) {}
        public void onProviderDisabled(String provider) {}
      };
    //update location via GPS PROVIDER
    //can also use LocationManager.NETWORK_PROVIDER
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);

}

Я также включаю разрешение ACCESS_FINE_LOCATION в файл манифеста:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

, поэтому я не совсем уверен, почему это не такРабота.Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 11 февраля 2011
0 голосов
/ 26 февраля 2011

Скорее всего, ваша ошибка: lm.getLastKnownLocation (LocationManager.GPS_PROVIDER);

Это потому, что getLastKnownLocation является неблокирующим вызовом и при условии, что приложение только что запустилось, не существует «последнего известного местоположения», которое имеет система. Возможно, вы захотите выполнить цикл, пока не получите ненулевое значение для getLastKnownLocation.

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