Я создаю приложение, в котором мне нужно собирать уведомления о статусной строке. Пользователям предлагается разрешить либо мою реализацию NotificationListenerService (API> = 18), либо AccessibilityService (другие устройства), и они перенаправляются на экран настроек.Различные файлы AndroidManifest для разных уровней API
Когда я нахожусь на API < 18 пользователь перенаправляется на экран настроек специальных возможностей, он разрешает службу специальных возможностей, и все в порядке. Однако, когда пользователь находится на 18> =, даже если пользователь перенаправлен на настройки уведомлений, он все равно может перейти к настройкам доступности, чтобы разрешить также службу специальных возможностей. Обе мои службы регистрируют уведомления и уведомляют меня об этом.
Очевидно, что я могу проверить, из какого сервиса приходит сообщение, и реагировать соответствующим образом, но я бы предпочел какое-то более чистое решение. Я не хочу, чтобы пользователь мог разрешать обе службы (оба они отображаются в настройках).
Есть ли способ сделать что-то вроде определения отдельных файлов манифеста для разных уровней API или объявить <uses-sdk>
внутри тега <application>
, чтобы они использовались для разных уровней API? И, конечно же, мы не можем создавать сервисы программно - мы должны объявить их в манифесте.
Можно ли определить что-то еще, чем bool? В частности, что-то вроде launchMode? – RominaV
@RominaV: Я не уверен. Значения для 'android: launchMode' взяты из перечислимого списка. Я * думаю *, они преобразуются в целые числа. Вы * можете * определить количество ресурсов integer и использовать их, если сможете найти нужные значения целого числа. – CommonsWare