Получать информацию GPS в Android? - PullRequest
0 голосов
/ 27 июля 2011

Я использовал для получения информации GPS о коде выглядит следующим образом.Ошибка приложения - настоящий телефон.Я думаю, что проблема приложения должна ждать Gps, чтобы получить его.Как я могу это сделать?

    public class Main extends Activity {

    TextView text;
    Location currentLocation;
    double latitude;
    double longitude;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        text = (TextView)findViewById(R.id.text);

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

        LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                updateLocation(location);
            }
            public void onStatusChanged(
                    String provider, int status, Bundle extras) {}
            public void onProviderEnabled(String provider) {}
            public void onProviderDisabled(String provider) {}
        };

        locationManager.requestLocationUpdates(
                LocationManager.GPS_PROVIDER, 1000, 1, locationListener);

        Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

        latitude=location.getLatitude();
        longitude=location.getLongitude();

        addressText.setText("Latitude: "+latitude+" \n"+"Longitude: "+longitude);


void updateLocation(Location location){
        currentLocation = location;
        latitude = currentLocation.getLatitude();
        longitude = currentLocation.getLongitude();
    }
    }

Ответы [ 2 ]

0 голосов
/ 23 января 2013

Возвращает ноль, если нет последнего известного местоположения для GPS.

   Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Вам нужно подождать, пока GSP не получит исправление местоположения, чтобы дать вам местоположение, вызвав onLocationChanged.Вы можете добавить прослушиватель состояния GPS, чтобы узнать, когда это происходит.

В onCreate добавить:

locationManager.addGpsStatusListener(locationListener);

Добавить этот метод в locationListener:

@Override
public void onGpsStatusChanged(int event) {
    switch (event) {
    case GpsStatus.GPS_EVENT_FIRST_FIX:
        Log.d("GPSStatus", "GPS First Fix");
        break;
    case GpsStatus.GPS_EVENT_STARTED:
        Log.d("GPSStatus", "GPS Started");
        break;
    case GpsStatus.GPS_EVENT_STOPPED:
        Log.d("GPSStatus", "GPS Stopped");
        break;
    }
}

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

    if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) 
0 голосов
/ 27 июля 2011

Полагаю, официальное руководство объясняет это довольно хорошо.Пожалуйста, посмотрите там: http://developer.android.com/guide/topics/location/obtaining-user-location.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...