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

OSCHINA-MIRROR/chinasoft4_ohos-PermissionUtils

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

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 )

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

Введение

Получение разрешений, цепочный вызов. Развернуть Свернуть
Java
MIT
Отмена

Обновления

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

Участники

все

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

Загрузить больше
Больше нет результатов для загрузки
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