Как получить пользователя Home/Work location для пользователя в Android

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

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

Есть ли способ получить координаты (широта и долгота), которые Google Now (они взяты из карт Google) использует для этого? Я имею в виду что-то вроде (GoogleMapsApi > GetFavorite Locations > Get Home Location > Получить координаты> использовать их в моем приложении).

Если есть, можете ли вы указать мне пример, учебник или код, который делает это.

Заранее спасибо.

6 ответов

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

Плюс, и большой плюс - он может уведомить ваше приложение, когда ваш пользователь прибывает / покидает конкретное место, которое вы определили заранее.

Это точно соответствует вашим потребностям, для этого примера давайте поговорим о доме:

  1. Нахождение вашего дома:
    • Neura sdk обнаружит ваш дом в течение нескольких дней, так как система должна узнать ваши привычки и местонахождение. Так что, когда вы спите в каком-то месте несколько дней, а также проводите время за ним, взаимодействуйте с устройствами в этом месте -> есть четкий признак того, что это место - ваш дом.
    • Если вы не хотите ждать несколько дней, вы также можете отобразить диалоговое окно для вашего пользователя, чтобы сказать ему, чтобы установить его дом, который не так уж умный, я должен признать, но с этим SDK вы можете показать своему пользователю сборщик просит его выбрать свой дом.
  2. Вы можете запросить, чтобы Neura уведомил вашего пользователя (через Google Cloud Messaging), например, когда он придет домой.
  3. Покажите свой список информации, когда вы получите push для userArrivedHome.

Вы можете проверить этот проект на git, выполнив в точности то, что я описал, для:

  1. Найдите свой домашний адрес пользователя
  2. Отключение / включение телефона, когда пользователь приходит / уходит с работы соответственно.
  3. Получение события, когда пользователь прибывает / покидает дом.

Не стесняйтесь брать эти проекты и делайте так, как вам нравится.

Чтобы узнать ваш проект домашнего адреса пользователя, вот результат приложения: home_detection

Я не думаю, что вы можете получить информацию от API Google. Как отмечает @surender8388 в комментариях, единственный способ сделать это - использовать местоположение и время.

ACCESS_COARSE_LOCATION - хороший выбор, если вы не хотите использовать GPS.

Вы можете обнаружить Wifis и назначить их на место (Дом / Работа)

(Я никогда не пробовал ничего подобного, но это могло бы помочь: http://developer.android.com/reference/android/net/wifi/WifiManager.html, http://developer.android.com/reference/android/net/wifi/WifiManager.html)

Что делает Google Now, так это экономит время и количество посещений вами места с часами в одном и том же месте и беспроводными сетями. Из этих данных, когда они достигли определенной определенности, спрашивает пользователя, хочет ли он назначить его в качестве дома / работы.

Ну, Google Now использует сложный алгоритм, как и Waze. Вы также заметите, что Google Now спросит вас, важно ли местоположение через некоторое время. Он смотрит на места, где пользователь часто проводит много времени. Один из них наверняка будет дома, а другой наверняка будет работать. Просто попросите дешевое местоположение в 4.2 и посмотрите, где пользователь трендует.

Вы можете попробовать использовать новый API для получения местоположения (fused-provider) и использовать геозоны.

Google IO (fused-провайдер)

Официальная документация Геозоны

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