Получение данных GPS? - PullRequest
0 голосов
/ 03 мая 2010

Внутри

public class IAmHere extends Activity implements LocationListener {

у меня есть

@Override
public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}

и

внутри

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

у меня есть

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);    
    List<String> providers = lm.getProviders(true);  

    /* Loop over the array backwards, and if you get an accurate location, then break out the loop*/  
     Location l = null;  

    for (int i=providers.size()-1; i>=0; i--) {  
            l = lm.getLastKnownLocation(providers.get(i));  
            if (l != null) break;  
        }  

      double[] gps = new double[2];  
      if (l != null) {  
          gps[0] = l.getLatitude();  
          gps[1] = l.getLongitude();  
      }  

      gpsString = (TextView)findViewById(R.id.gpsString);

  String Data = ""; 
  String koordinata1 = Double.toString(gps[0]);
  String koordinata2 = Double.toString(gps[1]);
  Data = Data + koordinata1 + " | " + koordinata2 + "\n";
  gpsString.setText(String.valueOf(Data));

но, кажется, это не работает? Зачем? Я имею в виду, что даже эмулятор не хочет отправлять данные GPS - когда я нажимаю «отправить» через пользовательский интерфейс или консоль, ничего не происходит ...?

Спасибо.

1 Ответ

1 голос
/ 03 мая 2010

Сначала вы реализовали LocationListener на IAmHere, а затем ничего не сделали с этим интерфейсом.

Во-вторых, вы звоните getLastKnownLocation(), но вы ничего не делаете для запуска Android для запуска сбора данных о местоположении любого провайдера.

Эти две проблемы связаны.

Службы определения местоположения отключены до тех пор, пока что-то не зарегистрируется для получения данных о местоположении от них. Как правило, это через requestLocationUpdates() на LocationManager ... который использует реализованный вами интерфейс LocationListener.

Рецепт использования LocationManager:

  1. Зарегистрируйте LocationListener через requestLocationUpdates()
  2. Отмените регистрацию LocationListener иногда (например, onDestroy()), чтобы не допустить утечки памяти
  3. Когда исправления местоположения входят в onLocationChanged(), сделайте что-нибудь полезное

Вот пример проекта , который использует LocationManager и LocationListener таким образом.

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