Получите местоположение в Huawei (местоположение HMS)
- Post author: admin
- Запись опубликована: 2 января, 2022
- Post category: Вопросы по программированию
#android #location #huawei-mobile-services #huawei-developers #huawei-location-kit
#Android #Расположение #huawei-мобильные услуги #huawei-разработчики #huawei-комплект для определения местоположения
Вопрос:
В Android есть две отдельные функции для определения местоположения:
- getLastLocation()
- getCurrentLocation()
getLastLocation возвращает последнее известное местоположение устройства, где getCurrentLocation возвращает текущее местоположение устройства, находя последнее (текущее) местоположение. getCurrentLocation занимает некоторое время, чтобы вычислить, где getLastLocation не занимает никакого времени.
В наборе определения местоположения Huawei я нашел обратный вызов FusedLocation для определения местоположения и getLastLocation(). Есть ли какой-либо способ получить текущее местоположение, как в Android. И каков наилучший способ получить точное местоположение устройства?
КАК ДОБАВИТЬ ГЕОЛОКАЦИЮ К ФОТО НА HUAWEI
Ответ №1:
Вам рекомендуется использовать requestLocationUpdates для получения информации о текущем местоположении, в функции обратного вызова вы получите результат locationResult.
Затем вы можете получить информацию о местоположении с помощью locationResult.getLocations() интерфейса, как показано ниже:
private final LocationCallback mLocationCallback = new LocationCallback()
Источник: programbox.ru
Встраиваем геолокацию от Huawei в Android приложение

В предыдущих статьях мы создавали аккаунт разработчика для использования Huawei Mobile Services и подготавливали проект к их использованию. И использовали аналитику от Huawei вместо аналога от Google. В этой статье мы будем встраивать определение геолокации от Huawei.
Вот полный список статей из цикла:
- Создаём аккаунт разработчика, подключаем зависимости, подготавливаем код к внедрению. тык
- Встраиваем Huawei Analytics. тык
- Используем геолокацию от Huawei. ← вы тут
- Huawei maps. Используем вместо Google maps для AppGallery.
Как должен выглядеть код в уже готовом проекте
Исходить будем, опять таки, из того, что у вас геолокация для гугла сделана примерно так:
1) Для проверки разрешения пользователя на доступ к его местоположению использована библиотека RxPermissions примерно так:
class PermissionsHelper < private var rxPermissions: RxPermissions? = null /** * Вызываем в Activity#onCreate */ fun attach(activity: FragmentActivity) < rxPermissions = RxPermissions(activity) >/** * Вызываем в Activity#onDestroy */ fun detach() < rxPermissions = null >fun requestPermission(vararg permissionName: String): Single < return rxPermissions?.request(*permissionName) ?.firstOrError() ?: Single.error( IllegalStateException(«PermissionHelper is not attached to Activity») ) >>
2) Создан свой класс для местоположения:
Как включить геолокацию на Андроид телефоне ?
data class Location( val latitude: Double, val longitude: Double ) < companion object < val DEFAULT_LOCATION = Location(59.927752, 30.346944) >>
3) Создана абстракция над поставщиком местоположения:
interface FusedLocationClient < fun checkPermissions(): Singlefun getLastLocation(): Single fun requestLastLocation(): Single >
4) И используется она примерно так:
class LocationGateway( private val fusedLocationClient: FusedLocationClient ) < fun requestLastLocation(): Single < return fusedLocationClient.checkPermissions() .flatMap < granted ->if (granted) < fusedLocationClient.getLastLocation() .onErrorResumeNext(fusedLocationClient.requestLastLocation()) >else < Single.just(Location.DEFAULT_LOCATION) // или ошибку кидаем какую-то >> > >
Используем разные реализации определения геолокации
Если вышеописанное верно для вашего случая, то как и в случае с аналитикой нам понадобятся 2 разные реализации FusedLocationClient — FusedLocationClientImpl :
1) В папке src/huawei/kotlin/com/example :
2) В папке src/google/kotlin/com/example :
В итоге реализации отличаются только импортами)
Аналогично с аналитикой, в DI биндим для типа FusedLocationClient экземпляр FusedLocationClientImpl . Для разных сборок будет взята та или иная реализация.
Ну и не забываем, конечно, зависимости в скрипте сборки прописать:
dependencies
И не забудьте добавить разрешение на доступ к местоположению в фоне если в приложении планируется такой вариант использования сервиса! Если такое разрешение уже есть в файле AndroidManifest.xml — то можете этот пункт пропустить. Если нет — добавьте его:
Подводные камни
Надо иметь в виду, что геолокация от Huawei будет работать при следующих условиях:
- У вас установлены Huawei Mobile Services на девайсе.
- Им выданы нужные разрешения.
Дальше — встраиваем карты
С геолокацией мы разобрались, в следующей статье покажем как встроить карты от Huawei в приложение, которое уже использует аналог от Google.
Источник: savepearlharbor.com
Где в хуавей геолокация
Будь в курсе последних новостей из мира гаджетов и технологий
iGuides для смартфонов Apple

Как посмотреть историю перемещений пользователя Android-устройства

Александр Кузнецов — 25 декабря 2013, 19:27

Смартфоны и планшеты на базе Android постоянно фиксируют местоположение пользователя и хранят эти данные. Координаты они определяют несколькими способами: через спутники GPS, башни сотовой связи или точки Wi-Fi. Если у вас есть Android-устройство, вы можете ради интереса зайти в свой аккаунт и посмотреть историю своих перемещений. История хранится с самого первого дня, когда у вас появилось устройство на Android, и не очищается автоматически.
Сделать это просто — достаточно залогиниться в аккаунт Google и перейти в Google Maps на страницу истории местоположений. Тут вы увидите карту с линиями своего перемещения в течение суток и календарь с историей за любой день.График под картой позволяет просмотреть историю перемещений в течение выбранного дня, при нажатии на точку вы увидите, когда именно вы были в отмеченном на карте месте.

Наверно, такая история иногда может быть полезна. Допустим, вам захочется вспомнить, куда вы ходили в определенный день, долго ли там были и куда пошли потом. Или потребуется показать, где и когда вы находились, чтобы снять с себя подозрения.
Но вдруг о существовании отслеживания узнает ревнивая жена (или ревнивый муж) и попросит доказать, что вы действительно в прошлую пятницу задержались на работе, а не ушли в гости к коллеге? Лучше уж никакого алиби, чем плохое. К счастью, историю можно очистить.
Если нужно удалить данные за конкретное число, выберите его в календаре и нажмите «Удалить историю за этот день». Если хотите очистить данные за все время, нажмите «Удалить всю историю».


Если на вашем Android устройстве есть меню «Настройки > Местоположение > История местоположений», вы можете удалить историю через него.
Кроме того, вы можете запретить Google дальнейшее сохранение таких данных. Для этого перейдите в настройки истории, выберите опцию «Отключить» и нажмите «Сохранить». Теперь можно спать спокойно — за вами почти никто не следит.
Источник: www.iguides.ru
