Проблема с получением информации с GPS на Android

1

Я только начал играть с Android-устройством и испытываю проблемы с получением обновлений от приемника GPS.

Во-первых, код, поэтому вы можете проверить, правильно ли я делаю все:

В AndroidManifest.xml у меня есть:

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

Слушатель местоположения определяется как частный член Activity:

private LocationListener mLocationListener = new LocationListener()
{

    @Override
    public void onLocationChanged(Location pLocation) {
        double lLatitude = pLocation.getLatitude();
        double lLongitude = pLocation.getLongitude();
        mGpsTextView.setText ("Longitude" + Double.toString(lLongitude) + " Latitude: " + Double.toString(lLatitude));
    }

    @Override
    public void onProviderDisabled(String provider) {
        mGpsTextView.setText ("Provider disabled");
    }

    @Override
    public void onProviderEnabled(String provider) {
        mGpsTextView.setText ("Provider enabled");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        switch (status)
        {
        case LocationProvider.OUT_OF_SERVICE:
            mGpsTextView.setText("GPS out of service");
            break;
        case LocationProvider.TEMPORARILY_UNAVAILABLE:
            mGpsTextView.setText("GPS temorarily unawalible");
            break;
        case LocationProvider.AVAILABLE:
            mGpsTextView.setText("GPS avalible");
            break;
        default:
            mGpsTextView.setText("GPS crazy");
        }

   }

};

В методе onResume я получаю LocationManager и регистрирую слушателя:

    mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    mLocationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0.0f, mLocationListener);

В "onPause" я удаляю прослушиватель

    mLocationManager.removeUpdates(mLocationListener);

Затем, когда я тестирую код на эмуляторе с geo fix - все работает отлично. Но когда я развертываю свое приложение по телефону, код не работает так, как должен. Когда поставщик отключен, текст в "mGpsTextView" отключен "провайдер" - так что это нормально. Но когда я запускаю приложение с включенным gps-провайдером, текст в "mGpsTextView" и никакие обновления не возвращаются (проверяется с помощью отладчика - onLocationChanges не вызывается).

Любая идея, что может быть неправильным?

  • 1
    Вы вставили неправильный кусок кода здесь? Похоже, вы нигде не даете свой LocationListener.
  • 0
    да, я просто вставил неправильный код
Показать ещё 2 комментария
Теги:

1 ответ

0

Почему вы используете Sensor.TYPE_ACCELEROMETER?

Это должно быть примерно так:

notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 60000, 100.0f, locationListener);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 0.0f, locationListener);
  • 0
    да, я просто вставил неправильный код

Ещё вопросы

Сообщество Overcoder
Наверх
Меню