2009-10-13 4 views
3

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

Мой вопрос в том, что именно является правильным способом использования 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

Не могли бы вы переформатировать свой код? Начните каждую строку с 4 пробелами, и все это станет одним большим блоком. –

+2

Какую актуальную проблему вы наблюдаете? Он просто не получает никаких координат? Возвращает ли он фиктивные данные? Вызывает ли это исключение? –

ответ

3

Две вещи

1) Сделать широты и долготы летучий

2) Try регистрации в качестве слушателя диспетчер местоположения GPS

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

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

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

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

+0

Образец кода ведет к сайту с регистрационной стеной. Как раздражает. –

+0

Yikes! Это раздражает! Извините, что devX добавил регистрационную посадку в последний месяц или около того :-(Добавлено предупреждение для ответа. – haseman

+0

Чтобы обойти платную стену, вставьте URL-адрес в поиск Google и нажмите на него. t показать другую страницу для google, чем вам (через google). –

1

комментарий линия Расположение локация = location.getLastKnownLocation (location.GPS_PROVIDER);

и протестировать приложение на обновление GPS вручную в DDMS

, если он работает, вернуться к коду затем положить Расположение LOC = location.getLastKnownLocation («GPS»);

+0

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

Смежные вопросы