1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/chinasoft_ohos-LocationManager

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LocationManager

Проект

  • Название проекта: LocationManager.
  • Серия: openharmony, компонент адаптирован для сторонних разработчиков.
  • Функционал: LocationManager.
  • Состояние адаптации проекта: основные функции реализованы.
  • Различия в вызовах: отсутствуют.
  • Версия разработки: SDK6, DevEco Studio2.2 beta1.
  • Базовая версия: release 2.4.1.

Демонстрация работы

Инструкция по установке

  1. В файле build.gradle в корневом каталоге проекта:
allprojects {
    repositories {
        maven {
            url 'https://s01.oss.sonatype.org/content/repositories/release/'
        }
    }
}
  1. В файле entry модуля build.gradle:
dependencies {
   implementation('com.gitee.chinasoft_ohos:LocationManager:1.0.0')
   ......  
}

Проект можно запустить напрямую при использовании SDK6 и DevEco Studio 2.2 beta1. Если проект не запускается, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект с соответствующей версией. Скопируйте файлы из нового проекта в корневой каталог.

Использование

LocationManager позволяет интегрировать функцию определения местоположения в Ability, AbilitySlice, Fraction и Service. Для каждого компонента есть соответствующий родительский класс:

  • LocationBaseAbility;
  • LocationBaseAbilitySlice;
  • LocationBaseFraction;
  • LocationBaseService.

Для простой интеграции необходимо наследовать соответствующий абстрактный родительский класс и реализовать его методы. Например:

public abstract LocationConfiguration getLocationConfiguration();

В подклассе реализуйте этот метод, например:

@Override
  public LocationConfiguration getLocationConfiguration() {
    return Configurations.defaultConfiguration("Give me the permission!", "Would you mind to turn GPS on?");
  }

При необходимости вызовите метод получения местоположения:

  getLocation();

Предоставьте следующие методы для обработки процесса определения местоположения и результатов:

  /**
   * Этот метод будет вызываться при изменении процесса.
   *
   * @param processType новый текущий процесс
   */
  void onProcessTypeChanged(int processType);

  /**
   * Этот метод вызывается при получении нового обновления местоположения
   */
  void onLocationChanged(Location location);

  /**
   * Если невозможно получить местоположение, например, нет активного провайдера или нет разрешения и т. д.,
   * будет передан целочисленный тип из {@linkplain FailType}, который поможет вам определить причину сбоя.
   */
  void onLocationFailed(int type);

  /**
   * Этот метод вызывается, когда пользователь предоставляет разрешение на определение местоположения,
   * или когда вы запрашиваете его, но приложение уже имеет это разрешение.
   * Вы можете определить, было ли разрешение только что предоставлено или оно уже имелось у приложения, проверив логическое значение этого метода.
   */
  void onPermissionGranted(boolean alreadyHadPermission);
  /**
    *
    *
    */
  void onStatusChanged(int status);

Также предоставляются настраиваемые интерфейсы, такие как:

LocationConfiguration awesomeConfiguration = new LocationConfiguration.Builder()
    .keepTracking(false)
    .askForPermission(new PermissionConfiguration.Builder()
        .permissionProvider(new YourCustomPermissionProvider())
        .rationaleMessage("Gimme the permission!")
        .rationaleDialogProvider(new YourCustomDialogProvider())
        .requiredPermissions(new String[] { permission.ACCESS_FINE_LOCATION })
        .build())
    
    .useDefaultProviders(new DefaultProviderConfiguration.Builder()
        .requiredTimeInterval(5 * 60 * 1000)
        .requiredDistanceInterval(0)
        .acceptableAccuracy(5.0f)
        .acceptableTimePeriod(5 * 60 * 1000)
        .gpsMessage("Turn on GPS?")
        .gpsDialogProvider(new YourCustomDialogProvider())
        .setWaitPeriod(ProviderType.GPS, 20 * 1000)
        .build())
    .build();

Тестирование

CodeCheck — тестирование кода без ошибок. CloudTest — тестирование кода без ошибок. Вирусная безопасность — проверка пройдена. Текущая версия demo функционально не отличается от исходного компонента.

Версии

  • 1.0.0
  • 0.0.1-SNAPSHOT

Авторские права и лицензии

Copyright 2016 yayandroid

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Инструмент для определения местоположения, основанный на системном нативном API, подходит для интеграции функции геолокации в различные компоненты страниц. Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/chinasoft_ohos-LocationManager.git
git@api.gitlife.ru:oschina-mirror/chinasoft_ohos-LocationManager.git
oschina-mirror
chinasoft_ohos-LocationManager
chinasoft_ohos-LocationManager
master