Android - Как получить список всех доступных фильтров намерений?

Я ищу документы по Android и по какой-то безумной причине не могу найти список всех доступных фильтров намерений.

Я найти фильтр намерений, который будет делать что-то вроде, уведомление меня через широковещательный приемник о том, что определенное действие (например, браузер или электронная почта) было запущено или находится на переднем плане. Кто-нибудь может мне помочь с этим.

26
задан Mogsdad 17 January 2018 в 01:09
поделиться

4 ответа

PackageExplorer перечисляет все фильтры намерений, определенные в приложениях на вашем устройстве.

Чтобы ответить на ваш вопрос: Вы создаете фильтр (-ы) намерений, который хотите использовать для выбора вашей активности, когда программа ищет услугу или деятельность. Таким образом, каждое действие в пакете определяет свой собственный список фильтров намерений.

Мне было полезно иметь список всех фильтров намерений, определенных всеми приложениями на устройстве, - поэтому я знал бы, какие приложения будет вызывать система при обработке намерения. Я поместил бесплатное приложение на Android Market, поищу «Package Explorer», который ищет все приложения, которые он может найти на вашем устройстве, декодирует файл AndroidManifest.xml и отображает список всех фильтров намерений, определенных всеми приложениями. Таблицу всех фильтров намерений можно отсортировать по полям «Действие», «Категория», «Данные» (т. Е. Схема или mimetype), имени пакета или типу фильтра намерений, чтобы вы могли найти все устройства Activite на своем устройстве, которые отвечают на различные действия или категории.

Package Explorer также собирает все поля разрешений на использование в манифесте и отображает список приложений, которым требуются разрешения. Таким образом, вы можете найти все пакеты, которые используют 'SEND_SMS' или что-то в этом роде. При нажатии на имя пакета отображается декодированный (несжатый двоичный файл) AndroidManifest.xml для пакета.

36
ответ дан 28 November 2019 в 06:18
поделиться

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

adb shell dumpsys package r

Это даст вам список всех статически зарегистрированных намерений фильтры.

15
ответ дан 28 November 2019 в 06:18
поделиться

На http://www.openintents.org/en/ имеется «база данных», которая пытается собрать известные фильтры намерений. Также в разделе «Намерение» перечислены некоторые.

5
ответ дан 28 November 2019 в 06:18
поделиться

Продолжая ответ Тома Фрейзера, лучше всего использовать dumpsys с grep и sort.

dumpsys activity broadcasts |grep -iE ".+\.[0-9A-Z_\-]+:$" |sort

Выражение grep позволяет отлавливать только строки, заканчивающиеся в формате, подобном цели (...blahblah.SOME_INTENT:). Возможно, не все поймут, но это хорошее начало.

3
ответ дан 28 November 2019 в 06:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: