2012-05-23 2 views
0

Я разрабатываю приложение для Android, чтобы получить текущую долготу и широту от GPS. У меня есть следующий кодНевозможно получить долготу и широту в android

public class setting extends Activity { 

TextView longval; 
TextView latval; 

@Override 
public void onCreate(Bundle savedInstanceState){ 
/** Called when the activity is first created. */ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.setting); 

    longval = (TextView)findViewById(R.id.longitudefield); 
    latval = (TextView)findViewById(R.id.latitudefield); 

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 

//Location lastLocation = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER); 
LocationListener locationListener = new myLocationListener(); 

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 
} 
class myLocationListener implements LocationListener{ 

    public void onLocationChanged(Location location) { 
     // TODO Auto-generated method stub 
     if(location != null){ 
      double longitude = location.getLongitude(); 
      double latitude = location.getLatitude(); 
      //Toast.makeText(getApplicationContext(), Double.toString(longitude), Toast.LENGTH_SHORT).show(); 
      longval.setText(Double.toString(longitude)); 
      latval.setText(Double.toString(latitude)); 
     } 
    } 

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

    } 

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

    } 

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

    } 

} 

Я не уверен, когда я положил его в мой телефон (Galaxy Nexus). Я увидел значок GPS на панели, расположенной в верхней части моего телефона. Однако текстовое поле не обновляется, чтобы показать мою текущую долготу и широту. Я хотел бы спросить, является ли это проблемой моего кода или моего телефона? Я просто переключаю Wi-Fi без мобильных данных. Кажется, что onLocationChanged не вызывается.

Спасибо всем!

+0

Предоставление [SSCE] (http://sscce.org/) - это начало. А поскольку «кажется, что onLocationChanged не вызывается», вы должны это проверить. – keyser

+0

Опубликуйте свой логарифм. Есть ли там очевидные ошибки? –

+0

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

ответ

4

Его трудно получить Lat, Длинная внутренняя комната/квартира, используя GPS. Вместо LocationManager.GPS_PROVIDER используйте LocationManager.NETWORK_PROVIDER .., чтобы решить проблему ур.

+0

Я бы хотел спросить, как изменить код для NETWORK_PROVIDER. Просто измените locationManager.requestLocationUpdates (LocationManager.GPS_PROVIDER, 0, 0, locationListener); на locationManager.requestLocationUpdates (LocationManager.NETWORK_PROVIDER, 0, 0, locationListener); }? } – user1311794

+0

yes ... if ur используя метод getLastKnownLocation(), они также используют NETWORK_PROVIDER .. –

0

Ваш код правильный. После установки на вашем устройстве измените свое текущее местоположение не менее 10 метров. Мы переходим из вашей нынешней комнаты в другую комнату, которая находится на расстоянии не менее 10 метров. Я надеюсь, что вы получите свой выход. ..

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