// Добавление 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<>();
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
уже подготовил их для вас!
Календарь | Камера | Контакты | Локализация | |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
|
drawableId | permission_ic_calendar | permission_ic_camera | permission_ic_contacts | permission_ic_location |
Микрофон | Телефон | SMS | Хранение | Датчики | |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
|
drawableId | permission_ic_micro_phone | permission_ic_phone | permission_ic_sms | permission_ic_storage | permission_ic_sensors |
Использование иконок
List<PermissionItem> permissions = new ArrayList<>();
// Использование иконок
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 тестирование кода прошло успешно
Программа прошла проверку безопасности от вирусов
Функциональность текущего демонстрационного примера практически не отличается от оригинальной компоненты
Copyright (C) 2017 WeyYe
Лицензировано по лицензии Apache License, Version 2.0 («лицензия»);
вы можете использовать этот файл только в соответствии с условиями этой лицензии.
Вы можете получить копию лицензии по адресу
http://www.apache.org/licenses/LICENSE-2.0
Кроме случаев, когда это требует применимое законодательство или согласовано письменно, программное обеспечение,
распространяемое по данной лицензии, предоставляется «как есть», без каких-либо гарантий или условий любого типа,
явных или подразумеваемых. Смотрите лицензию для конкретного языка, регулирующего права использования и ограничения,
предусмотренные данной лицензией.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )