LocationManager
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/release/'
}
}
}
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. Для каждого компонента есть соответствующий родительский класс:
Для простой интеграции необходимо наследовать соответствующий абстрактный родительский класс и реализовать его методы. Например:
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 функционально не отличается от исходного компонента.
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 )