Android-сервис лучшие практики GPS - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть приложение, использующее данные GPS, я использую

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,

. Рекомендуется использовать эти сервисы.Скажем, если какое-то приложение уже вызвало это, я могу использовать те же данные GPS вместо повторного вызова службы.

Как я могу это сделать?

Счастливое кодирование

Ответы [ 3 ]

1 голос
/ 08 февраля 2012

Ваш вопрос не имеет никакого смысла, поскольку NotificationManager не имеет ничего общего с данными GPS и / или GPS.

Два отвечают на вторую часть: вы не можете повторно использовать данные GPS другогоПриложение, вы можете только запросить последнее известное местоположение и надеяться, что это не будет нулевым.Если он нулевой, вы должны получить позицию самостоятельно, используя LocationManager, а не NotificationManager.

0 голосов
/ 26 июля 2012

Убедитесь, что вы добавили разрешение на доступ к сети и GPS Убедитесь, что вы добавили ключ API Google Map в xml

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

Чтобы получать данные от GPS, вы должны использовать код, подобный следующему:

locationMan= (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationMan.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
locationMan.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);

LocationListener locationListener= new LocationListener() {
        public void onLocationChanged(Location location) {

            //TODO be sure the new position is really better then the one already had.

            lastPos= location;
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {
        }

        public void onProviderEnabled(String provider) {
        }

        public void onProviderDisabled(String provider) {
        }
    };  

Это простой слушатель, поэтому каждый раз, когда Android узнает об изменении текущего местоположения, он будет вызывать всех слушателей, включая ваше приложение и другие.Программы.Таким образом, процесс определения местоположения запускается только один раз, независимо от того, сколько слушателей добавлено в LOCATION_SEVICE.

Как только вы закончите с GPS, используйте

locationMan.removeUpdates(locationListener);

для удаления слушателя

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