Android: получение широты и долготы - PullRequest
1 голос
/ 21 февраля 2012

Можно ли получить Lat & Lng, не выходя на улицу? Моя текущая ситуация такова, что пользователю нужно быть на открытом воздухе, чтобы узнать свое местоположение, что также занимает довольно много времени, чтобы получить его. Я хочу, чтобы мой пользователь мог получить информацию о своем местоположении в помещении.

Ответы [ 4 ]

0 голосов
/ 21 февраля 2012
    LocationManager locManager;   
    Location location;
 double lat;
 double lng;
    try {
                gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
            } catch (Exception ex) {
            }
            try {
                network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
            } catch (Exception ex) {
            }

            if (!gps_enabled && !network_enabled) {
                 // show alert 
            }
            if (network_enabled) {
                  locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);                
                locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, locationListener);
                location = locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
             lat = location.getLatitude();
             lng = location.getLongitude();
            }
            if (gps_enabled) {
                locManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);              
                locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,1, locationListener);
                location = locManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
             lat = location.getLatitude();
             lng = location.getLongitude();
            }
0 голосов
/ 21 февраля 2012

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

Кроме того, используйте Последнее известное местоположение, к тому времени, когда gps исправляет местоположение, есть хороший блог, чтобы получить местоположение в ближайшее время.

android-developers.blogspot.in / 2011/06 / deep-dive-into-location.html

0 голосов
/ 21 февраля 2012

Да, можно взять подсказку из следующего кода:

try {
            gps_enabled = locManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        } catch (Exception ex) {
        }
        try {
            network_enabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        } catch (Exception ex) {
        }

        if (!gps_enabled && !network_enabled) {
             // show alert 
        }
        if (network_enabled) {
            locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locListener);
        }
        if (gps_enabled) {
            locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener);
        }
0 голосов
/ 21 февраля 2012

Да, это возможно, за дверью вы получаете свою сеть. так что вы можете использовать LocationManager.NETWORK_PROVIDER для получения координат GPS.

Пожалуйста, посмотрите на этот ответ .

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