2

Я разрабатываю библиотеку Android, которая предоставляет способы доступа к различным системным службам и сбора данных для анализа. Для сбора данных мои классы используют различных менеджеров системных служб (например, WifiManager).Android Studio: Можно ли игнорировать разрешения, используя аннотации?

Я бы как, чтобы структурировать манифест моей библиотеки таким образом, чтобы он не захватывал все возможные разрешения, необходимые всем этим функциям. Вместо этого я хотел бы оставить его в приложении , потребляя, чтобы библиотека объявляла только разрешения, которые ему понадобится, что может быть меньшим подмножеством того, что используется библиотекой.

Это фактически работает на практике, потому что манифесты все объединяются во время процесса сборки, поэтому приложение заканчивается правами, необходимыми для использования функций библиотеки. Однако, поскольку тег <uses-permission> не в манифест библиотеки, код все освещен предупреждениями от Android Studio.

  1. Есть ли способ для аннотирования моего кода библиотеки, так что проверка разрешения игнорируются? Конечно, я могу просто отключить осмотр «Constant and Resource Type Mismatches» в my Настройки Android Studio, но это не поможет никому другому, кто пытается использовать библиотеку. Я пытался найти ссылку на этой проверки в документации (так что я мог бы убить его с @SuppressWarnings, но не нашли его еще.

  2. Является ли это даже стоит подход? ... или я должен, вместо этого, есть библиотека захватывает все необходимые разрешения, которые заставили бы пользователя библиотеки отключить те, которые не нужны, с использованием свойства tools:node="remove" в его манифеста? Проблема заключается в том, что при добавлении функций в моя библиотека, потребители моей библиотеки неоднократно обращались назад и явно удаляли эти новые разрешения. Я чувствую, что это не отличная модель, и я предпочел бы оставить разрешение повторно квесты для моих потребителей.

Рассмотрим следующие разговоры на эту тему -

ответ

6

В просто случайно правой кнопкой мыши вокруг вопроса я был в состоянии выбрать Подавить для метод контекстная команда в Android Studio и добавлена ​​следующая аннотация:

@SuppressWarnings("ResourceType") 

Итак ... yay! Есть ответ, на который следует использовать аннотацию.

Мне все еще интересно, в чем мысли людей относятся к подходу в целом. Пожалуйста, не стесняйтесь хэш, что в разделе ответов.^_^

Смежные вопросы