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

OSCHINA-MIRROR/chinasoft_ohos-HiPermission

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

Приветствие

Проект HiPermission

  • Название проекта: HiPermission
  • Серия: адаптация и перенос третьих сторон для OpenHarmony
  • Функционал: простой и удобный красивый модуль запроса прав доступа
  • Состояние переноса проекта: основные функции завершены (animStyle() ещё не реализовано)
  • Различия при вызове: отсутствуют
  • Версия SDK: SDK6, DevEco Studio2.2 beta1
  • Базовая версия: Release Yöntem 1.0.7

Демонстрация эффекта

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

  1. В файле build.gradle в корневом каталоге проекта,
// Добавление Maven-репозитория
repositories {
    maven {
        url 'https://s01.oss.sonatype.org/content/repositories/release/'
    }
}
  1. В файле build.gradle модуля entry,
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 тестирование кода прошло успешно

Программа прошла проверку безопасности от вирусов

Функциональность текущего демонстрационного примера практически не отличается от оригинальной компоненты

История версий

  • 1.0.0

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

Copyright (C) 2017 WeyYe

Лицензировано по лицензии Apache License, Version 2.0 («лицензия»);
вы можете использовать этот файл только в соответствии с условиями этой лицензии.
Вы можете получить копию лицензии по адресу

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

Кроме случаев, когда это требует применимое законодательство или согласовано письменно, программное обеспечение,
распространяемое по данной лицензии, предоставляется «как есть», без каких-либо гарантий или условий любого типа,
явных или подразумеваемых. Смотрите лицензию для конкретного языка, регулирующего права использования и ограничения,
предусмотренные данной лицензией.

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

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

Введение

Простая в использовании красивая библиотека заявок на доступ. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

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

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