Есть ли способ программно определить приблизительное географическое положение мобильного телефона с помощью приложения J2ME, например, определить текущую ячейку? Этот вопрос особенно относится к устройствам без GPS.
Я ищу не набор географических координат, а возможность для пользователя определять поведение программного обеспечения в зависимости от местоположения.
Будем признательны за решение для любого оборудования; однако чем более универсальное решение - тем лучше. Большое спасибо!




Я не верю, что существует общий J2ME API для определения местоположения.
Я знаю, что у BlackBerry есть специальный API для получения не только приблизительного местоположения «ячейки», но также и API GPS.
Боюсь, что на данный момент решения GPS являются собственностью производителя.
Возможно, вам придется зарегистрироваться в качестве разработчика BB (бесплатно), чтобы просмотреть этот документ. Также, очевидно, существует JSR для javax.microedition.location, а BB имеет реализацию. [na.blackberry.com/eng/developers/javaappdev/…
Если устройство поддерживает API местоположения JSR 179, вы можете использовать это. В прошлый раз, когда я заглядывал в это, вряд ли какие-либо устройства поддерживали это, но это было несколько лет назад.
ИМО, ни одно приложение не сможет сделать это само по себе. Потребуется помощь спутника или мобильного телефона, вышек сотовой связи, чтобы определить положение, в котором в настоящее время находится сотовый телефон, что опять же с точностью до 30-50 метров.

Расчет здесь будет производиться программным обеспечением вышек сотовой связи или спутниковым. Ваше приложение только сделает запрос, а затем получит данные, которые будут отправлены в ответ.
Опять же, API, которые вы будете использовать, будут предоставлены компанией сотовой связи или спутниковой службой. Они почти никогда не бывают бесплатными. Я не уверен, что они продают его и обычным пользователям. Только, возможно, крупные компании, такие как Blackberry или им подобные.
В вопросе не уточнялось, с какой точностью. Если приложению просто нужно знать, какой именно город или почтовый индекс, то просто знать, какая вышка сотовой связи самая сильная, «достаточно». В густонаселенных городских районах простое знание вышки сотовой связи может быть таким же точным, как несколько городских кварталов.
Я знаю, что там не указано, с какой точностью, я просто подумал, что поставлю это туда. :)
это мой первый пост на stackoverflow.
Вы можете получить CellID (идентификатор телефонного столба, к которому подключен мобильный телефон) на многих телефонах через System.getProperty(String arg).
Здесь у меня есть пример, который пробует несколько ключей, чтобы узнать, можно ли найти идентификатор ячейки. Я тестировал это на множестве мобильных телефонов SonyEricsson, и он работает нормально, если это не мобильный телефон Symbian, такой как P1 и так далее. Если вы будете искать в сети, вы, вероятно, сможете найти намного больше ключей для поиска cellID: s для Motorola, Samsung и так далее.
try{
String[] cellIDTags = {"com.sonyericsson.net.cellid", "phone.cid", "Siemens.CID", "CellID"};
for(int i = 0; i < cellIDTags.length; i++){
cellID = System.getProperty(cellIDTags[i]);
if (cellID != null && cellID != ""){
location.setCellId(cellID);
break;
}
}
}catch(Exception e){
cellID = "";
}
Я просмотрел многие сайты загрузки приложений, но не нашел: Но я уверен, что некоторые исследования по этому поводу могут помочь вам создать собственное приложение с J2ME API. Поскольку код, предоставленный DAN, дает номер базовой станции. Вы можете распознать ближайшую станцию, которой может соответствовать ячейка. На самом деле ячейка способна захватывать как минимум 6 станций одновременно, поэтому, как объясняет deamonkid, мультилатерация может использоваться для приблизительного определения местоположения, если у вас есть географическая карта вашего района или города. Приложение рассчитает расстояние и направление от ближайшей башни, и на карте уже есть координаты этой базовой станции. Так можно вычислить пространственную координату (оценочную) суреш. Этим вы можете получить точность до 100 метров. Для этого, вероятно, потребуется приложение для измерения уровня сигнала, которое вы, вероятно, сможете загрузить. Теперь, если вы можете сгенерировать код на основе этого, поделитесь. Я также занимаюсь обширным исследованием этого вопроса. Удачи суреш и все
Спасибо, Кен, какие ссылки вы могли бы предоставить для BlackBerry?