Географическое положение из мобильного приложения Java?

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

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

Будем признательны за решение для любого оборудования; однако чем более универсальное решение - тем лучше. Большое спасибо!

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
2 706
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Я не верю, что существует общий J2ME API для определения местоположения.

Я знаю, что у BlackBerry есть специальный API для получения не только приблизительного местоположения «ячейки», но также и API GPS.

Боюсь, что на данный момент решения GPS являются собственностью производителя.

Спасибо, Кен, какие ссылки вы могли бы предоставить для BlackBerry?

Vlad Gudim 23.10.2008 15:50

Возможно, вам придется зарегистрироваться в качестве разработчика BB (бесплатно), чтобы просмотреть этот документ. Также, очевидно, существует JSR для javax.microedition.location, а BB имеет реализацию. [na.blackberry.com/eng/developers/javaappdev/…

Ken Gentle 23.10.2008 18:57
Ответ принят как подходящий

Если устройство поддерживает API местоположения JSR 179, вы можете использовать это. В прошлый раз, когда я заглядывал в это, вряд ли какие-либо устройства поддерживали это, но это было несколько лет назад.

ИМО, ни одно приложение не сможет сделать это само по себе. Потребуется помощь спутника или мобильного телефона, вышек сотовой связи, чтобы определить положение, в котором в настоящее время находится сотовый телефон, что опять же с точностью до 30-50 метров. Locate phone

Расчет здесь будет производиться программным обеспечением вышек сотовой связи или спутниковым. Ваше приложение только сделает запрос, а затем получит данные, которые будут отправлены в ответ.

Опять же, API, которые вы будете использовать, будут предоставлены компанией сотовой связи или спутниковой службой. Они почти никогда не бывают бесплатными. Я не уверен, что они продают его и обычным пользователям. Только, возможно, крупные компании, такие как Blackberry или им подобные.

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

James Schek 07.11.2008 18:21

Я знаю, что там не указано, с какой точностью, я просто подумал, что поставлю это туда. :)

user20358 10.11.2008 15:21

это мой первый пост на 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 метров. Для этого, вероятно, потребуется приложение для измерения уровня сигнала, которое вы, вероятно, сможете загрузить. Теперь, если вы можете сгенерировать код на основе этого, поделитесь. Я также занимаюсь обширным исследованием этого вопроса. Удачи суреш и все

Другие вопросы по теме