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

OSCHINA-MIRROR/chinasoft4_ohos-PermissionUtils

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 7.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.03.2025 16:12 334332e

PermissionUtils

Проект

  • Название проекта: PermissionUtils
  • Серия: адаптация и перенос третьих сторон для OpenHarmony
  • Функционал: легкий запрос прав доступа, цепочечный вызов, простота использования
  • Состояние переноса проекта: завершено
  • Различие в вызовах: отсутствует
  • Версия SDK: sdk6, DevEco Studio2.2 Beta1
  • Базовая версия: Release 3.0.0

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

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

  1. В файле build.gradle в корневой директории проекта добавьте:
allprojects {
   repositories {
       maven {
           url 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
       }
   }
}
  1. В файле build.gradle модуля entry добавьте:
dependencies {
   implementation('com.gitee.chinasoft_ohos:PermissionUtils:0.0.2-SNAPSHOT')
   ......  
}

Проект можно запустить непосредственно при использовании sdk6 и DevEco Studio2.2 beta1. Если это невозможно, удалите файлы .gradle, .idea, build, gradle, build.gradle, создайте новый проект с учетом вашей версии и скопируйте соответствующие файлы нового проекта в корневую директорию.

Пример использования

  1. Запрос прав доступа Переопределите метод onRequestPermissionsFromUserResult в Ability:
@Override
public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {
    PermissionManager.handleResult(this, requestCode, permissions, grantResults);
}
  1. Начало запроса прав доступа
PermissionManager.Builder()
            .key(num9000)
            .permission(PermissionEnum.WRITE_EXTERNAL_STORAGE)
            .askAgain(true)
            .askAgainCallback(new AskAgainCallback() {
                @Override
                public void showRequestPermission(UserResponse response) {
                    showDialog(response);
                }
            })
            .callback(MainAbilitySlice.this)
            .ask(getAbility());

или запрос нескольких прав доступа

.permission(PermissionEnum.WRITE_EXTERNAL_STORAGE, PermissionEnum.ACCESS_FINE_LOCATION,
                PermissionEnum.READ_CALENDAR)

или

ArrayList<PermissionEnum> permissionEnumArrayList = new ArrayList<>();
permissionEnumArrayList.add(PermissionEnum.WRITE_EXTERNAL_STORAGE);
permissionEnumArrayList.add(PermissionEnum.ACCESS_FINE_LOCATION);
permissionEnumArrayList.add(PermissionEnum.READ_CALENDAR);

.permissions(permissionEnumArrayList)

Если вам требуется только проверка наличия прав доступа, используйте следующий код:

PermissionEnum permissionEnum = PermissionEnum.WRITE_EXTERNAL_STORAGE;
boolean granted = PermissionUtils.isGranted(MainAbility.this, PermissionEnum.WRITE_EXTERNAL_STORAGE);

new ToastDialog(getContext()).setText("permissionEnum.toString() + \" isGranted [" + granted + "]\"").setAlignment(LayoutAlignment.CENTER).show();
  1. Вы можете использовать три различных типа обратного вызова, в зависимости от ваших потребностей.

FullCallback: предоставляет информацию обо всех запрошенных правах доступа

SimpleCallback: возвращает булевое значение, указывающее, были ли все запросы прав доступа одобрены

SmartCallback: возвращает булевое значение, указывающее, были ли все запросы прав доступа одобрены; а также булевое значение, указывающее, было ли полное отказ от некоторых прав доступа

  1. Если пользователь ответил "не спрашивать снова" на запрос прав доступа, вы можете использовать utils для перенаправления пользователя в настройки приложения
PermissionUtils.openApplicationSettings(getAbility());
  1. Определение наличия права доступа
boolean isGranted = PermissionUtils.isGranted(getAbility(), PermissionEnum.WRITE_EXTERNAL_STORAGE);

Информация о тестировании

Код проверен CodeCheck без ошибок

Код проверен CloudTest без ошибок

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

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

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

0.0.2-SNAPSHOT

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

       Лицензия MIT

Авторское право © 2017-2019 Raphaël Bussa

Данное соглашение предоставляется бесплатно каждому лицу, получившему копию этого программного обеспечения и связанных с ним документов («Программное обеспечение»), чтобы иметь возможность работать с этим программным обеспечением без каких-либо ограничений, включая, но не ограничиваясь правами использовать, копировать, изменять, объединять, публиковать, распространять, передавать, продавать копии данного программного обеспечения, а также позволить лицам, которым данное программное обеспечение предоставлено, делать то же самое, при условии соблюдения следующих условий:

Вышеупомянное авторское право и данное соглашение должны быть включены во все копии или значительные части данного программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОРГОВЛЕЖНОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ И НЕНАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРОВ И ДОЛЖНИКОВ ПО АВТОРСКИМ ПРАВАМ НЕ ДОЛЖНЫ БЫТЬ УЧТЕНО В КАЧЕСТВЕ КОМПЕНСАЦИИ ЗА ЛЮБОЕ ПРЕТЕНДУЮЩЕЕ ПРАВО, УЩЕРБ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, В КОМПЕНСАЦИИ ЗА ДЕЙСТВИЕ КОНТРАКТА, ДЕЛИКТА ИЛИ ДРУГОГО, ВОЗНИКШЕГО ИЗ, В СВЯЗИ С ИЛИ В СВЯЗИ С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЙСТВИЯМИ С ЭТИМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/chinasoft4_ohos-PermissionUtils.git
git@api.gitlife.ru:oschina-mirror/chinasoft4_ohos-PermissionUtils.git
oschina-mirror
chinasoft4_ohos-PermissionUtils
chinasoft4_ohos-PermissionUtils
1-update-gradle