2012-02-24 2 views
0

я пытаюсь получить curent координат и с NETWORK_PROVIDER Адресная в trhead, но когда я изменить к GPS_PROVIDER, приложение силы близко: с сообщением от LogCat:сила близко, когда изменение поставщика к GPS_PROVIDER

02-24 16 : 54: 00.249: E/AndroidRuntime (3004): android.view.ViewRoot $ CalledFromWrongThreadException: только исходный поток , создавший иерархию представлений, может коснуться его представлений.

Я думаю, что разница, когда я просто изменить поставщика от сети к GPS, как и раньше при использовании сети, приложение работает хорошо ..

это код для резьбы:

private void requestPosition() 
    { 
     if(!cekInternet()) 
     { 
      Txt_konek.setText("Need internet Connection"); 
     } 
     else 
     { 
      new Thread() 
      { 
       public void run() 
       { 
        Message localMessage = Message.obtain(); 
        localMessage.what=1; 
        try 
        { 
         Splash2.this.ll = Splash2.this.show_current_location(); 
         Splash2.this.lat = Double.valueOf(Double.parseDouble(Splash2.this.ll.substring(0,Splash2.this.ll.indexOf(",")-1))); 
         Splash2.this.lng = Double.valueOf(Double.parseDouble(Splash2.this.ll.substring(1+Splash2.this.ll.indexOf(",")))); 
         Splash2.this.posisiUser = Splash2.this.goToGeocoder(Splash2.this.lat.doubleValue(), Splash2.this.lng.doubleValue()); 
         Splash2.this.messageHandler.sendMessage(localMessage); 
         return; 
        } 
        catch(Exception localException) 
        { 
         while(true) 
         { 
       Splash2.this.Txt_konek.setText("no internet connection");       
         } 
        } 
       } 
      } 
      .start(); 
     } 
    } 

этот метод для получения текущего местоположения:

private String show_current_location() 
    { 
     Location localLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     if(localLocation==null) 
     {    
      this.longLat = localLocation.getLatitude()+","+localLocation.getLongitude(); 
     } 
     else 
     { 
      this.longLat = localLocation.getLatitude()+","+localLocation.getLongitude(); 
     } 
     return this.longLat; 
    } 

и это locationListener:

ответ

0

поставщика GPS требуется время, чтобы исправить и вы обрабатываете свой метод show_current_location до этого, так что вы получаете сообщение об ошибке , Вам нужно подождать, пока вы не получите lat и lang.

+0

yerp ... GPS занимает больше времени, а затем использует сеть .. и решение ti устраняет эту проблему? -thx- :) – rage

+0

Рад! Тогда вы можете принять этот ответ :-) –

+0

мой лекционный запрос с использованием GPS, подумайте о том, чтобы использовать его, а затем использовать сеть. – rage

0

, если ваше местоположение localLocation равно нуль, то нулевое исключение указателя будет выброшено на

localLocation.getLatitude() 
+0

Я пытаюсь заполнить координату вручную, когда localLocation имеет значение null и его запуск, но stil не может получить текущее местоположение с помощью GPS, или я должен сделать это с помощью Asynctask ?? – rage

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