Android GPS облако путаницы! - PullRequest
3 голосов
/ 13 октября 2009

Я пытаюсь создать свое первое приложение для Android с использованием GPS. На данный момент у меня есть кнопка для рисования, которая при нажатии предупреждает о появлении тоста долготы и широты. Я пытался использовать telnet localhost 5554 , а затем geo fix #number # number для ввода значений, но результаты не отображаются, только 0 0. Я также пробовал DDMS способ отправки координат GPS, и я получаю то же самое.

Мой вопрос заключается в том, какой именно правильный способ использования геофикса и способа отправки координат в DDMS. Я использовал Location, LocationManger и LocationListener, но я не уверен, что это правильный выбор.

Код дается, на случай, если ошибка существует с кодом

@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    Button button = (Button) findViewById(R.id.track);
    button.setOnClickListener(this);
    LocationManager location =(LocationManager)getSystemService(Context.LOCATION_SERVICE);
    Location loc = location.getLastKnownLocation(location.GPS_PROVIDER);
    updateWithNewLocation(loc);

  }

 private final LocationListener locationListener = new LocationListener() {
   public void onLocationChanged(Location location) {
     updateWithNewLocation(location);
   }

  private void updateWithNewLocation(Location l) {
  longitude = l.getLongitude();
  latitude = l.getLatitude();
  provider = l.getProvider();     
  }

    public void onClick(View v) { 
     Toast.makeText(this, "Your location is " + 
      longitude + " and " + latitude + " provided by: " + 
      provider, Toast.LENGTH_SHORT).show();          
   }     
}

Ответы [ 2 ]

3 голосов
/ 13 октября 2009

Две вещи

1) Сделать широту и долготу изменчивыми

2) Попробуйте зарегистрироваться в качестве слушателя менеджера местоположений GPS

location.requestLocationUpdates (LocationManager.GPS, 100, 1, locationListener);

Это должно получить ваши обратные вызовы, отправленные на ваш объект locationListener.

Вы можете посмотреть пример кода Android GPS здесь: http://www.devx.com/wireless/Article/43005

(ВНИМАНИЕ! DevX добавил регистрационную посадку, так как я добавил эту ссылку!)

1 голос
/ 21 января 2010

прокомментируйте строку Местоположение loc = location.getLastKnownLocation (location.GPS_PROVIDER);

И протестируйте приложение, обновив gps вручную в ddms

если это работает, вернись к коду и поставь Местоположение loc = location.getLastKnownLocation ("gps");

...