2011-01-06 14 views
17

携帯電話にインストールされているパッケージのアクティビティインテントフィルタをリストしたいとします。これは単なる学習体験のためのものです。暗黙のインテントで開始できるアプリと、インテントフィルタの設定方法を理解したいと思います。インストールされているパッケージのインテントフィルタのリスト

Googleは、http://developer.android.com/guide/appendix/g-app-intents.htmlで提供するアプリケーションの表を提供しています。私は他のアプリケーションのために同様のリストを作成しようとしています。

私はPackageManagerを使用し、この情報をコードで掘り下げることはできますか?誰でもこれを行うことができる既存のアプリを知っていますか?誰かが私が望むことをするために既存の例を教えてもらえますか?

申し訳ありませんが、これはListing an application's activity and intent-filters?Android -- How to get a list of all available intent filters ?

答えて

13

のような類似した質問の重複している場合は私の知る限り、特定のアプリケーションが受信できるすべての意図を一覧表示する方法はありません。しかし、PackageManagerのqueryIntentActivities、queryIntentservices、およびqueryBroadcastReceiversを使用して、インテントに反応するアプリケーションがインストールされているかどうかを確認して、インテントを作成して同様の情報を得ることができます(広範囲ではありません)。

10

アプリ "ManifestViewer"をおすすめします。それはインストールされている各アプリケーションのインテントをリストします。 https://play.google.com/store/apps/details?id=jp.susatthi.ManifestViewer

素敵な一日を!

+1

を私はそれをチェックアウトします。ありがとう - https://market.android.com/details?id=uk.co.ashtonbrsc.android.intentintercept&feature=search_result –

+0

最後に、これをチェックすることに夢中になりました。再度、感謝します。 –

+0

私はそれがいくつかの共通の意図だけをリストアップすると思うが、それらはアプリケーションで使用されているものではない。 –

1

ヌガー7.0に私のネクサス6で次のコマンドを使用して、私はすべての意図のリストだ:

adb shell pm dump * | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

  • まずコマンドは、お使いのデバイスにシェルを開きをし、すべてのPackageManagerダンプを行いますパッケージ。
  • 次に、 'filter'という単語の行だけを選択するgrepに出力するパイプ。
  • パイプはcutに出力され、その行の任意のスペースの12番目の位置にテキストがあります。その後
  • 重複インテントをクリアuniqに出力パイプその後Z.
  • からそのリストをソートsortに出力パイプ。

YMMV - 一度に1つずつ試してみてください。次のパイプを追加して、必要な結果が表示されるようにします。 adbの以前のバージョンでは、たとえば、cutのスペース数が異なるかどうかはわかりません。

そして、あなたが使用することができクロームのようなただ一つのパッケージに対する結果たい場合:

adb shell pm dump com.android.chrome | grep ' filter' | cut -d ' ' -f 12 | sort | uniq

+0

良い答えですが、 'filter'部分は明白ではありませんでした。あなたは '' com.android.chrome /。 ''のようなものでパス全体を置く必要があります。 – not2qubit

+1

アンドロイド4のセットアップに 'dump'オプションはありません。 'dumpsysパッケージr'は代わりに私のために働いた。 – eadmaster

関連する問題