Вопрос

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

Мой вопрос заключается в том, каков именно правильный способ использования geo fix и 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();          
   }     
}
Это было полезно?

Решение

Две вещи

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

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

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

Это должно привести к отправке обратных вызовов на ваш объект locationListener.

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

(ПРЕДУПРЕЖДЕНИЕ!DevX добавил площадку для регистрации после того, как я добавил эту ссылку!)

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top