Рамки для мобильных приложений с учетом местоположения? - PullRequest
2 голосов
/ 17 марта 2009

Мобильное устройство, такое как мобильный телефон / КПК Windows Mobile, по определению используется во многих местах и ​​должно соответствующим образом адаптироваться. Если я дома, я бы хотел, чтобы он переключился на мою локальную WLAN, а не использовал 3G или GPRS. Если я нахожусь на собрании, я бы хотел, чтобы он включал тихий зуммер, а не громкую мелодию звонка. Если я нахожусь в шумной обстановке, я бы хотел, чтобы рингтон был настроен соответствующим образом. Если я еду домой, я мог бы отправить автоматическое SMS на мой SO.

Существует несколько источников данных, которые я мог бы использовать, чтобы определить, где и в какой среде я нахожусь:

  1. Текущая ячейка GSM
  2. Доступные SSID сети WLAN
  3. Координаты GPS (если это устройство активно)
  4. Статус календаря (на собрании)
  5. Микрофон (шумная или тихая обстановка)
  6. Статус ActtiveSync (возможно, на моем компьютере)

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

ближайший вопрос , который я нашел, о том, как получить идентификаторы мобильных ячеек. Другие API можно найти, я думаю (но любая помощь приветствуется).

Существуют ли какие-либо структуры или идеи, которые могут помочь мне интегрировать эти источники данных, позволить пользователю настраивать среды и инициировать события при изменении местоположения или ситуации? Как я должен представлять местоположение, основываясь на доказательствах из нескольких источников? У вас есть быстрые ссылки на применимые API и компоненты, которые могут мне помочь? Желательно для CF (а не только для Windows XP ).

Ответы [ 4 ]

1 голос
/ 19 марта 2009

Чтобы лучше понять уже опубликованные предложения:

Информация о местоположении Ссылка на «Deep Cast» в CodeProject использует веб-сервис Google для определения своего местоположения по идентификатору сотовой вышки в дополнение к оборудованию GPS в телефоне, если таковое имеется. Предполагается, что Google имеет широкий охват идентификаторов вышек сотовой связи, что делает этот метод очень надежным. Недостатком этого метода является то, что неясно, что Google думает о том, кто использует сервис. Возможные решения Google могут включать (1) против использования этой функциональности другими программами (2) поощрение разработчиков использовать эту функциональность или (3) апатию (т.е. не запрещать ее использование, но и не поддерживать ее использование). Опасность апатии заключается в том, что в какой-то момент в далеком будущем Google может поменять интерфейс службы без предупреждения. Если вы намерены создать программу по коммерческим причинам, вам действительно захочется получить четкое представление о характере Google.

Услуга Skyhook Wireless чрезвычайно надежна. Apple использует Skyhook Wireless для своего местоположения WiFi на iPhone и iPod. Пару месяцев назад Skyhook расширила эту услугу, и теперь вместо определения местоположения по WiFi на мобильных телефонах Windows теперь будут использоваться WiFi, GPS и местоположение сотовой вышки. Недостатком этой услуги является то, что если вы планируете использовать ее в коммерческих целях, вам нужно будет рассмотреть вопрос о лицензировании. Использование этого SDK из .Net / управляемого приложения изначально было проблемой из-за ограничений возможностей взаимодействия .Net Compact Framework. Мне удалось создать оболочку .Net и опубликовать ее в дискуссионной группе Skyhook Wireless.

Напоминания, основанные на местоположении

Несколько месяцев назад была статья MSDN о напоминаниях, основанных на местоположении. Для получения дополнительной информации см. Статью и пример кода на http://msdn.microsoft.com/en-us/magazine/2009.01.wm6gps.aspx

Обнаружение окружающего шума

Несколько лет назад был приведен пример кода MSDN Magazine, демонстрирующий, как автоматически регулировать громкость телефона в зависимости от уровня окружающего шума. Для получения более подробной информации см http://msdn.microsoft.com/en-us/magazine/cc163341.aspx

1 голос
/ 17 марта 2009

Эта очень интересная статья в Code Project о том, как вы можете получить CellID и затем сопоставить его с координатой.

0 голосов
/ 17 марта 2009
0 голосов
/ 17 марта 2009

Buddycloud и их API могут представлять интерес для вас. Они разрешают запросы, основанные на многих вещах, которые вы перечислили.

Кроме того, вы можете использовать Bluetooth для определения вашей близости к другим и т. Д. Интересные вещи.

...