Определяем местоположение телефона. Проблема в том что телефонов с встроенным GPS- приемником относительно небольшое количество. Надеюсь данным постом помогу не только автору той темы, но и кому то еще, сам в свое время набил немало шишек. Итак, приступим. Чтобы определить местоположение пользователя (телефона, как вам угодно), можно использовать несколько способов: — по GPS. Способ наиболее точный. Из недостатков: относительно долгий старт, потребляет много энергии, не так уж много аппаратов с встроенным приемником.— по вышкам оператора. Энергии кушает немного. Из минусов: не на всех телефонах доступны данные.— по IP. Собственно это самый большой минус.— по CB- сообщениям оператора. Итак, нам нужна более- менее приемлемая точность при определении местоположения (для города это примерно 1. Наиболее подходящим будет определение местоположения через данные сотового оператора. Сервисы: Чтобы сконвертировать данные сети и получить координаты, нам понадобятся базы данных вышек сотовых операторов. В сети существует немало ресурсов, я использовал проверенные временем Google. Maps, Yandex. Locator, location- api. Параметры, принимаемые API: MCC (код страны), MNC (код оператора сети), LAC (код соты), Cell. ID (идентификатор вышки). В результате для каждой марки существует свой набор ключей для вызова System. Property(key), отыскать которые не так то легко. К примеру на Siemens'ах данные сети без патчинга прошивки получить не получиться. Sony. Ericsson возвращает данные в HEX- представлении. Nokia отказывается выдавать LAC несертифицированным (то- есть почти всем) мидлетам. Решение: Я написал класс, перебирающий известные ключи и получающий по этим ключам данные о сети. Потом ключи отправлялись в API сервисов, получались координаты и выводилось среднее значение, которое я считаю наиболее правдоподобным (за год использования не припомню случаев очень больших ошибок). Если телефон позволяет получить силу сигнала, мы используем бонус Яндекса: получаем координаты С учетом силы сигнала и БЕЗ, получаем дельту этих значений, применяем ее ко всем результатам от API, выводим средний результат. Как ни странно, последнее решение оказалось палкой о двух концах. При равномерном затухании сигнала точность по сравнению с обычным способом увеличивается раза в два, но если это плотная городская застройка или холмистая местность, где сигнал распространяется неравномерно, в этом случае точность падает достаточно сильно. В итоге есть возможность определить местоположение на телефонах Siemens, Sony. Ericsson, Samsung (к примеру s. Huawei и прочих. Время загрузки координат и адресов примерно секунд 1. Пример из демо (используется надстройка класс Location, в котором происходит определение координат и загрузка для них адреса)import javax. Display. import javax. Form. import javax. MIDlet. public class Hello. World extends MIDlet implements Runnable.
Локатор мобильных телефонов и мобильные программы-шпионы: краткое знакомство. Загрузив однажды программу-шпион в мобильник Вашего любимого человека, Вы сможете буквально следовать за его телефоном по пятам. Sony Ericsson PC Suite С. Скачать apk программу Локатор. Андроид приложение Локатор на смартфон и планшет с ОС Android.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |