Как позвонить, чтобы получить одно исправление GPS, когда я хочу Android? - PullRequest
0 голосов
/ 23 декабря 2011

Как я могу получить одно GPS-определение своего местоположения, просто вызвав одну функцию?Только для этого примера, как я могу взять Лата и Лона в тост.

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Я не думаю, что вы можете просто сделать один звонок и получить определение местоположения. GPS / Android просто не работает таким образом. Телефон может иметь последнее известное местоположение, но это последнее известное местоположение, возможно, было снято / записано несколько часов назад и за несколько миль. Местоположение, возвращаемое методом getLastKnownLocation (), имеет отметку времени и точность, которую можно использовать для определения того, достаточно ли это местоположение.

Местоположения обычно определяются путем настройки прослушивателя, прослушивания обновлений и остановки прослушивателя, когда у вас есть достаточно хорошее исправление. См. Получение пользовательского местоположения для хорошего примера, особенно подробности в примере - метод isBetterLocation ().

Я считаю, что лучше всего создать асинхронную задачу, которая будет активно регистрировать и отменять регистрацию приемников GPS / сети / пассивных прослушивателей в зависимости от того, имеет ли приложение достаточно хорошее местоположение или нет, и иметь этот класс для экспорта метода getMyPosition (), который возвращает Объект местоположения, если была установлена ​​достаточно хорошая позиция, или ноль, если нет. Тогда основной код может сделать простой однострочный вызов функции, чтобы получить текущую позицию. Но только потому, что за кулисами за кадром выполняется асинхронная задача.

Я пытаюсь сделать свою задачу асинхронной активной отмены регистрации прослушивателя GPS и отключить схемы GPS для экономии заряда батареи, когда у меня есть достаточно хорошее решение. Как долго я отключаю слушателей, зависит от потребностей приложения. Оставление пассивного прослушивателя оставленным (зарегистрированным) позволяет моей задаче / приложению прослушивать отчеты о местоположении GPS, вызванные любым другим приложением на устройстве, «бесплатно».

Получение достаточно хорошей позиции - это не сделка с одним вызовом функции, если только вы не сделаете это с большим количеством закулисной работы.

1 голос
/ 23 декабря 2011

Что вы пробовали?

Вот две официальные страницы для определения местоположения: http://developer.android.com/reference/android/location/Location.html http://developer.android.com/reference/android/location/LocationManager.html

Но чтобы получить самое последнее местоположение ипокажите это в тосте:

LocationManager locMan = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
Location loc = locMan.getLastKnownLocation(LocationManager.GPS_PROVIDER);
String lat = String.valueOf(loc.getLatitude());
String longitude = String.valueOf(loc.getLongitude());
Toast.makeText(context, lat+","+longitude, Toast.LENGTH_LONG).show();

Если вы хотите запросить новое местоположение, это больше кода, и я не буду описывать это здесь.Вы можете сделать поиск в Google или поиск здесь, чтобы найти, как его использовать.Вам нужен метод requestLocationUpdates или requestSingleUpdate.Я думаю, вы бы предпочли requestSingleUpdate

...