Как получить пользователя Home/Work location для пользователя в Android
Я разрабатываю приложение, которое приносит пользователю быстрый список "информационных" элементов, но я хочу установить параметры, чтобы он получал эти элементы в качестве уведомлений, когда он уходит из дома или с работы.
Я заметил (с помощью Google сейчас на моем устройстве), что они могут сказать, где пользователь живет и работает, так что они могут отправлять вам уведомления, когда вы уходите или приезжаете в одно из этих мест (что-то вроде этого, то это).
Есть ли способ получить координаты (широта и долгота), которые Google Now (они взяты из карт Google) использует для этого? Я имею в виду что-то вроде (GoogleMapsApi > GetFavorite Locations > Get Home Location > Получить координаты> использовать их в моем приложении).
Если есть, можете ли вы указать мне пример, учебник или код, который делает это.
Заранее спасибо.
6 ответов
Вы можете использовать бесплатный SDK под названием Neura, который имеет фазу обучения для определения ваших важных мест, таких как дом, работа, тренажерный зал, продуктовый магазин, рестораны и т. Д.
Плюс, и большой плюс - он может уведомить ваше приложение, когда ваш пользователь прибывает / покидает конкретное место, которое вы определили заранее.
Это точно соответствует вашим потребностям, для этого примера давайте поговорим о доме:
- Нахождение вашего дома:
- Neura sdk обнаружит ваш дом в течение нескольких дней, так как система должна узнать ваши привычки и местонахождение. Так что, когда вы спите в каком-то месте несколько дней, а также проводите время за ним, взаимодействуйте с устройствами в этом месте -> есть четкий признак того, что это место - ваш дом.
- Если вы не хотите ждать несколько дней, вы также можете отобразить диалоговое окно для вашего пользователя, чтобы сказать ему, чтобы установить его дом, который не так уж умный, я должен признать, но с этим SDK вы можете показать своему пользователю сборщик просит его выбрать свой дом.
- Вы можете запросить, чтобы Neura уведомил вашего пользователя (через Google Cloud Messaging), например, когда он придет домой.
- Покажите свой список информации, когда вы получите push для userArrivedHome.
Вы можете проверить этот проект на git, выполнив в точности то, что я описал, для:
- Найдите свой домашний адрес пользователя
- Отключение / включение телефона, когда пользователь приходит / уходит с работы соответственно.
- Получение события, когда пользователь прибывает / покидает дом.
Не стесняйтесь брать эти проекты и делайте так, как вам нравится.
Чтобы узнать ваш проект домашнего адреса пользователя, вот результат приложения:
Я не думаю, что вы можете получить информацию от 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) и использовать геозоны.