2013-05-27 3 views
21

Я тестировал новый API сервиса Google Geofencing.Как использовать API Geofencing для Android?

Я загрузил образец кода из Android developers site. Затем я запустил пример кода на устройстве Android (Galaxy Note 2). Я разместил геопозицию и радиус своего офиса до 10 м, но когда я подошел к своему офису, ничего не случилось.

При запуске кода примера, я заметил, что когда я уже в зоне геозондирования, а затем добавляю геозонность в LocationClient, ничего не происходит.

Я уже прочитал LocationClient class documentation, и нашел следующий пункт:

В случае поставщик сетевого расположения отключен пользователем, служба геозоны прекратит обновление, все зарегистрированные геозон будут удалены и намерение состоит в том созданный предоставленным ожидающим намерением. В этом случае, hasError(Intent) возвращает истинное и getErrorCode(Intent) возвращается GEOFENCE_NOT_AVAILABLE «.

Так я включил WiFi, и шли в мой офис (внутри геозонов), а затем я получил уведомление„геозоны поступили“.

у меня есть следующие вопросы:

  1. ли Geofencing работать только с Wi-Fi с поддержкой

  2. Почему не Locati по обеспечению моей сети 3G?

  3. Это ошибка в примере кода?

  4. Или это моя ошибка?

+0

То же самое здесь, я видел, что геозон я объявляю работать только тогда, когда мое устройство имеет подключение к Wi-Fi ... Если это ошибка, это довольно тревожный один – dleal

+0

я могу иметь Geofencing вызвали на 3g/4g/wifi, но на 3g/4g я должен установить радиус геофоруза намного больше. Как предложил Милош, это правильно. Я также задался вопросом, заметил ли кто-нибудь время задержки при настройке? Это отставание, когда вы входите в геозонность .. его не мгновение. – reidisaki

+0

Я нахожу, что этот образец проекта немного запутан. Что такое geo fence 1 и geo fence 2. Зачем мне вводить лат, длинный и радиус 2 раза? – TharakaNirmana

ответ

1

Wifi предназначен для отслеживания вашего местоположения. Использование сигналов Wi-Fi и сигналов ячеек для триангуляции вашей позиции - это более эффективное решение, чем постоянное использование вашего GPS. Кроме того, он работает в ситуациях, когда GPS не будет такой, как большие многолучевые области и внутри помещений.

5

Если вы используете только сотовую сеть, точность определения местоположения ниже, чем точность wi-fi или gps (если вы открываете Google Maps, синий круг - это оценка вашей текущей позиции - если вы используете только 3GP, круг может иметь радиус даже сотни метров).

В последние дни я работаю над приложением с использованием Geofences, и я выяснил следующее: IMHO запись геозонности запускается только в том случае, если ВСЕ этот «круг оценки местоположения» находится внутри радиуса геофенсации, то есть, если есть 100% вероятность того, что вы вошли в геозонность. Так что это зависит от того, какой большой радиус вы установили. Если вы установите только 10 метров, это, вероятно, будет работать только с GPS, никогда с 3GP. Для 3GP вам нужно будет установить радиус 1000 метров.

+6

Собственно, те тесты, которые я сделал, показали, что триггер геозонности вообще не заботится о точности и, к сожалению, не существует способа установить, хотим ли мы, если или нет. В моем случае ячейки с идентификаторами ячейки с точностью 800-1500 м достаточны, чтобы вызвать как вход, так и выход из событий геозонности на 200 м.Как вы, наверное, догадались, я получаю входы/выходы каждые 2 минуты, даже не двигаясь. Хотелось бы, чтобы мы лучше контролировали и документировали, чего ожидать от этого API, потому что сейчас это не очень полезно – Rick

1

В случае сетевого состояния вы должны увеличить радиус не менее 1000 М, потому что, используя сетевой провайдер для извлечения текущего местоположения, он занимает место рядом с сетевой башней. Но в случае GPS и условия Wi-Fi он работает больше точный (1 M также).

+1

, когда Я тестирую демонстрационное приложение для геозонности, предоставляемое разработчиком, оно отправляет уведомление только тогда, когда я на своем wi-fi и установил радиус до 1000 М. В другом случае, например, сеть, gps и радиус 1,10,100MI протестировали свое уведомление об отправке . Подумайте об этом? –

+1

Я думаю, что в случае сети u должен дать радиус минимум 1000 М, его работа для меня в случае Wi-Fi. Вы можете дать любой радиус, как 1, 10, 100. – RAHULRSANNIDHI

+0

Да .. Я могу .. Но что мне делать, если я хочу получать уведомления, когда GPS/2G/3G включен? .. Если у вас есть демо, вы можете поделиться им –

0

Я тестировал приложение для геозондирования образца, и если WiFi отключен, он не обнаруживает события геофэнции на версии, меньшей, чем Android 4.3.

Android 4.3 и выше работает даже WiFi отключен.

1

Я думал, что поделился бы своими результатами здесь. Я также разработал лабораторное приложение, которое реализует API местоположения Google Play Services и API Geofence. Мои результаты показывают, что код определения местоположения имеет своего рода патологическую неспособность признать свои ошибки. :)

При нажатии кнопки мое приложение создает геозонность в текущем местоположении («curLoc»), возвращаемом API местоположения с радиусом 30 метров. На экране я показываю расстояние до центра geofence («distToCenter»), вызывая curLoc.distanceTo (fenceLoc) и обновляя его примерно каждую секунду.

Я запускаю приложение и жду, пока точность не стабилизируется (обычно на 10,0 м), затем нажмите кнопку, чтобы создать забор. Я сразу получаю событие «Ввод». Я очищаю событие и иду на прогулку и, по-видимому, вступаю в пространственно-временную аномалию. Я иду по блоку и за углом, а значение distToCenter только увеличилось примерно на 4 метра. Я иду дальше, пока не окажусь в 300 метрах от моего дома (судя по шагам подсчета), и dstToCenter постепенно увеличивается. Событие выхода geofence, наконец, срабатывает около 20 секунд. После того, как dstToCenter пройдет выше 30 метров.

Жду, чтобы увидеть, где расстояние стабилизируется, и это около 150-иш метров. Я поворачиваюсь и возвращаюсь домой, и происходит такое же отставание в крайнем положении. Я сажусь за свой рабочий стол, пока моя червоточина находится примерно в 90 метрах. Примерно через 40 секунд мой доппельгангер попадает в забор, и примерно через 20 секунд я получаю событие ввода.

На этом этапе я все еще где-то на переднем тротуаре (в 7,4 метрах), пробираясь к входной двери.

ПРИМЕЧАНИЕ. Источник был «слит», хотя я видел, как значок состояния состояния GPS включается и мигает в течение нескольких секунд после того, как я потерял связь с моим WiFi. Более того, точность не колебалась с 10,0 метров.

LIARS!

:)

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