2010-07-07 2 views
2

Android обеспечивает множество намерений в базовой ОС и пакетах. Как определить аргументы (то есть данные, дополнительные функции и т. Д.) Для отправки в намерение? Например, вы можете открыть приложение Настройки, чтобы показать Info Application для конкретного приложения с помощью этого намерения:Как определить ожидаемые аргументы для Android Intent?

String pkgname = "com.example.application"; // whatever the app is 

Intent it = new Intent(Intent.ACTION_VIEW); 
it.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); 
it.putExtra("com.android.settings.ApplicationPkgName", pkgname); 
it.putExtra("pkg", pkgname); 

Проблема заключается в том, что я только знаю, что эти Extra s правы, потому что я их украл из чужого источника , Как я мог найти это сам?

Даже глядя на исходный код, я могу видеть, как ClassName используется, так как он находится в AndroidManifext.xml как действие, но я не вижу ничего, что указывает мне на «pkg», что, по-видимому, соответствует Extra для использования с Froyo, дольше для предыдущих версий.

+0

Я голосую из-за вашего вопроса «Как я мог найти это самостоятельно?». У меня такой же вопрос об использовании намерений. –

ответ

2

Как определить аргументы (что есть данные, Extras и т.д.), чтобы отправить Намерение?

Если документ не задокументирован, не используйте его. Код, который вы показываете, очень хрупок и может перестать работать с любым новым выпуском Android. Это может даже потерпеть неудачу на некоторых устройствах, если производитель устройства решает (по какой-то странной причине) заменить эту часть приложения «Настройки».

+0

Хороший совет, но при условии, что я хочу игнорировать его, чтобы сделать что-то, что кажется иначе невозможным, что тогда? Что я должен искать? – wfaulk

+0

Кроме того, не указана в AndroidManifest.xml документация? – wfaulk

+1

«Также не указана в AndroidManifest.xml документация?» Конечно нет. Вложение материала в манифест является техническим требованием Android. Это не означает, что автор этого приложения интересуется случайными сторонними приложениями, использующими эти вещи. Документация - это то, как разработчик приложения говорит другим о поддерживаемых API. Если разработчик хочет, чтобы вы напрямую вызывали его действия, разработчик расскажет вам, как это сделать. В случае приложений Android (например, «Настройки») документация разработчика отличается от исходного кода. – CommonsWare

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