Android - как найти намерение для установленных приложений - PullRequest
0 голосов
/ 11 апреля 2020

Я знаю, что приложение (app2), которое я установил на своем устройстве, может быть вызвано из другого приложения (app1). В app1 есть кнопка, которая вызовет app2. Есть ли способ определить, как выглядит этот Intent для запуска app2 на моем устройстве? Я хочу изменить свое собственное приложение, чтобы оно делало то же самое.

Например, эта страница на сайте разработчиков Android показывает, как сделать неявные намеренные призывы к действию.

https://developer.android.com/training/basics/intents/sending

Но есть ли способ узнать, какие Сущности / Действия другое приложение делает / делает видимыми, чтобы я мог вызвать app2 и открыть его?

1 Ответ

1 голос
/ 11 апреля 2020

App1 берет некоторые контекстные данные и запускает app2 с этими данными, открытыми на соответствующую страницу

Вы предполагаете, что app2 поддерживает действие, поддерживающее некоторую Intent, предназначенную для этого.

Есть ли способ определить, как выглядит Intent для запуска app2 на моем устройстве?

Поговорите с разработчиком app2.

Есть ряд общих Intent структур (ACTION_VIEW, ACTION_SEND и др. c.). Используя PackageManager, вы можете узнать, поддерживает ли app2 один из них. Через небольшую сложность есть способы, которыми вы можете добраться до манифеста и найти структуры <intent-filter>, поддерживаемые любым данным приложением 2 на устройстве.

Если вы имеете в виду вручную исследуя приложение 2, чтобы увидеть, что оно поддерживает, есть приложения, подобные этому , которые вы можете использовать.

Могу ли я узнать, какие пары ключ / значение он также поддерживает?

Поговорите с разработчиком приложения2. Эта информация является внутренней для приложения и не публикуется в таких местах, как манифест. Если app2 окажется с открытым исходным кодом, вы можете проверить исходный код.

...