Как я могу использовать библиотеку Permissionsdispatcher для новых разрешений времени выполнения Android M?

Я наткнулся на статью Cheese Factory (google, потому что я не могу опубликовать более двух ссылок с моей репутацией), в которой объясняется, как обращаться с новой системой разрешений для Android Marshmallow. В статье он ссылается на Permissionsdispatcher library который направлен на уменьшение кода шаблона. Поэтому я загрузил демо-версию библиотеки из GitHub, но я получил сообщение об ошибке, которое говорит, что MainActivityPermissionsDispatcher не может быть разрешен. Из того, что я могу понять, этот класс должен быть сгенерирован. Как я могу сгенерировать его для удаления ошибки?

MainActivity.java

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
 // delegate the permission handling to generated method
 // MainActivityPermissionsDispatcher cannot be resolved
 MainActivityPermissionsDispatcher.onRequestPermissionsResult(this, requestCode, grantResults);
}
2 ответа

Я разработчик. Спасибо за использование.

  • Проверьте настройку IDE, разрешена ли обработка аннотации или нет.
  • Вы сказали: "Это вилка разрешения разрешенийDispatcher", но что вы имеете в виду? Запустили репо и запустили модуль образца?


Как описано здесь https://github.com/hotchemi/PermissionsDispatcher#must

Вам нужно добавить аннотацию @RuntimePermissions к вашей активности и @NeedsPermission аннотации к методу как минимум.

В build.gradle добавьте следующее:

buildscript {
 dependencies {
 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.7'
 }
}
apply plugin: 'android-apt'
dependencies {
 compile 'com.github.hotchemi:permissionsdispatcher:1.2.1@aar'
 apt 'com.github.hotchemi:permissionsdispatcher-processor:1.2.1'
}

Плагин android-apt позаботится об обработке аннотации. После создания проекта вы сможете использовать сгенерированный класс.

licensed under cc by-sa 3.0 with attribution.