// Добавление репозитория Maven
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/release/'
}
}
dependencies {
implementation 'com.gitee.chinasoft_ohos:HiPermission:1.0.0'
}
Проект можно запустить непосредственно на sdk6 и DevEco Studio2.2 beta1. Если запуск невозможен, удалите файлы .gradle, .idea, build, gradle и build.gradle из проекта, создайте новый проект на основе вашей версии и скопируйте соответствующие файлы из нового проекта в корневой каталог.
Достаточно одной строки кода:
HiPermission.create(context)
.checkMutiPermission(new PermissionCallback() {
@Override
public void onClose() {
Log.i(TAG, "onClose");
showToast("Пользователь закрыл запрос на разрешение");
}
@Override
public void onFinish() {
showToast("Все запросы на разрешения завершены");
}
@Override
public void onDeny(String permission, int position) {
Log.i(TAG, "onDeny");
}
@Override
public void onGuarantee(String permission, int position) {
Log.i(TAG, "onGuarantee");
}
});
Таким образом легко получить три обязательных разрешения. Если вы хотите запросить другие разрешения, это тоже возможно:
List<PermissionItem> permissionItems = new ArrayList<PermissionItem>();
permissionItems.add(new PermissionItem(SystemPermission.CAMERA, "Камера", ResourceTable.Media_permission_ic_memory));
permissionItems.add(new PermissionItem(SystemPermission.LOCATION, "Местоположение", ResourceTable.Media_permission_ic_location));
HiPermission.create(MainActivity.this)
.permissions(permissionItems)
.checkMutiPermission(...);
Настройка темы Хотите изменить сообщения или цвета интерфейса? Это просто!
HiPermission.create(MainActivity.this)
.title("Дорогой Господь")
.permissions(permissionItems)
.filterColor(getColor(ResourceTable.Color_colorPrimary))// Цвет значков
.msg("Чтобы сохранить мир во всём мире, пожалуйста, предоставьте эти разрешения!\nДавайте вместе спасём мир!")
.style(ResourceTable.Pattern_PermissionBlueStyle)
.checkMutiPermission(...);
После настройки темы обязательно вызовите
filterColor()
, иначе значки разрешений будут чёрными.
pattern.json
{
"name": "PermissionBlueStyle",
"value": [
{
"name": "PermissionTitleColor",
"value": "$color:colorPrimaryDark"
},
{
"name": "PermissionMsgColor",
"value": "$color:colorPrimary"
},
{
"name": "PermissionItemTextColor",
"value": "$color:colorPrimary"
},
{
"name": "PermissionButtonBackground",
"value": "$graphic:shape_btn"
},
{
"name": "PermissionBackround",
"value": "$graphic:shape_bg_white"
},
{
"name": "PermissionButtonTextColor",
"value": "$color:permissionColorWhite"
}
]
}
Свойство | Тип | Описание |
---|---|---|
PermissionTitleColor | int | Цвет заголовка |
PermissionMsgColor | int | Цвет текста описания |
PermissionItemTextColor | int | Цвет текста разрешений |
PermissionButtonTextColor | int | Цвет текста кнопок |
PermissionButtonBackground | drawable | Фон кнопки |
PermissionBackround | drawable | Фон диалогового окна |
PermissionBgFilterColor | int | Фильтр фона |
PermissionIconFilterColor | int | Цвет значка |
После настройки темы необязательно вызывать filterColor()
— можно добавить свойство PermissionIconFilterColor
в свой стиль.
Стандартные значки
Нужны значки для других разрешений? В HiPermission
они есть!
Календарь | Камера | Контакты | Местоположение | |
---|---|---|---|---|
Идентификатор ресурса | permission_ic_calendar | permission_ic_camera | permission_ic_contacts | permission_ic_location |
Микрофон | Телефон | SMS | Хранилище | Датчики | |
---|---|---|---|---|---|
List<PermissionItem> permissions = new ArrayList<PermissionItem>();
//Использование значков
permissions.add(new PermissionItem(SystemPermission.CAMERA, getString(ResourceTable.String_permission_cus_item_camera), ResourceTable.Media_permission_ic_camera));
HiPermission.create(MainActivity.this)
.permissions(permissions)
.style(ResourceTable.Pattern_PermissionDefaultGreenStyle)
.checkMutiPermission(...);
Значки по умолчанию чёрного цвета, необходимо вызвать
filterColor()
для изменения цвета значков.
Внимание
В списке файлов обязательно зарегистрировать запрашиваемые разрешения, иначе после запроса будет отказано по умолчанию, и в настройках — в интерфейсе управления разрешениями это разрешение не отобразится.
Тестирование кода CodeCheck прошло без ошибок.
Тестирование кода CloudTest прошло без ошибок.
Проверка на вирусы прошла успешно.
Текущая версия demo-функционала практически не отличается от исходного компонента.
Авторские права (C) 2017 WeyYe
Лицензировано в соответствии с лицензией Apache, Версия 2.0 («Лицензия»);
вы не можете использовать этот файл, кроме как в соответствии с Лицензией.
Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если иное не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
См. Лицензию на конкретный язык, регулирующий разрешения и ограничения, предусмотренные Лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )