2013-04-30 3 views
0

И интересно, можно ли открыть конкретное действие, например, открыть новое письмо в приложении gmail или новое сообщение о том, что такое whatsapp.Запуск действий приложения Android в другом приложении

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

если возможно как достичь этого.

до сих пор я могу обедать приложением с именем пакета.

или получить список пакетов из getInstalledPackages, но я не могу найти, что будут опубликованы действия приложения.

Это зависит от приложения?

, а я знаю, что я могу сделать что-то вроде:

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 

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

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

ответ

2

getInstalledPackages содержит почти все, что вы можете получить от PackageManager о приложении. Но он не содержит намерений каждого компонента. В частности, ActivityInfo не содержит поля для хранения намерения или действия для его запуска. Насколько мне известно, трудно получить то, что вы хотите программно.

Но для популярного применения вы можете напрямую использовать свои апки, получить их AndroidManifest.xml и получить то, что хотите вручную.

Если вы хотите пропустить ввод пользователя, если несколько компонентов (приложений) могут обрабатывать ваши действия, вам необходимо явно указать компонент на intent.setComponent().

Intent intent = new Intent(Intent.ACTION_NAME); 
intent.setComponent(new ComponentName("com.package.address","com.package.address.TargetActivity")); 
startActivity(intent); 
+0

Спасибо за ваш ответ, это правильно, я должен получить манифест и оттуда получить намерения, по крайней мере, фильтр, который является "общим" – cesaregb

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