web-dev-qa-db-ja.com

Android-使用可能なすべてのインテントフィルターのリストを取得するにはどうすればよいですか?

私はAndroid docsを検索していますが、いくつかの非常識な理由で、使用可能なすべてのインテントフィルターのリストを見つけることができません。

特定のアクティビティ(ブラウザやメールなど)が開始されたか、フォアグラウンドで実行されたことをブロードキャストレシーバーを通じて通知するインテントフィルターを見つけています。誰かが私を助けてくれますか?.

25
Muhammad Shahab

あなたはそれを見つけるつもりはありません。インテントフィルターは、アプリケーションによって定義されます。興味のあるparitcularアプリケーションのドキュメントを見る必要があります。

5
Falmarri

PackageExplorerは、デバイスのアプリで定義されたすべてのインテントフィルターを一覧表示します

質問に答えるには:プログラムがサービスまたはアクティビティを探しているときに、アクティビティが選択されるようにするために使用するインテントフィルターを作成します。したがって、パッケージ内の各アクティビティは、独自のインテントフィルターのリストを定義します。

デバイス上のすべてのアプリケーションによって定義されたすべてのインテントフィルターのリストを用意すると便利です。インテントが処理されたときにシステムが呼び出すアプリがわかるからです。 Androidマーケットに無料アプリを置いて、デバイスで見つけることができるすべてのアプリを検索し、AndroidManifest.xmlファイルをデコードし、すべてのインテントフィルターのリストを表示する「Package Explorer」を検索しますすべてのアプリで定義されています。すべてのインテントフィルターのテーブルは、アクション、カテゴリ、データフィールド(つまり、スキームまたはMIMEタイプ)、パッケージ名、またはインテントフィルタータイプでソートできるため、さまざまなアクションに応答するデバイス上のすべてのアクティビティを見つけることができますまたはカテゴリ。

パッケージエクスプローラーは、マニフェストのすべてのuses-permissionsフィールドも収集し、どのアプリがどの権限を必要とするかを一覧表示します。したがって、「SEND_SMS」またはそのようなものを使用するすべてのパッケージを見つけることができます。パッケージの名前をクリックすると、パッケージのデコードされた(非圧縮バイナリ)AndroidManifest.xmlが表示されます。

36
Ribo

デバイスを使用していない場合は、次のコマンドを実行するだけです。

adbシェルdumpsysパッケージr

これにより、静的に登録されたすべてのインテントフィルターのリストが表示されます。

13
Tom Fraser

この投稿は古いですが、特定のAndroid dwldこのGODアプリにインストールされているアプリからマニフェスト情報を探している人のために:

https://play.google.com/store/apps/details?id=jp.susatthi.ManifestViewer

4
sirvon

http://www.openintents.org/en/ には、既知のインテントフィルタを収集しようとする「データベース」があります。また、Intentのドキュメントにはいくつかのリストがあります。

4
Heiko Rupp

Tom Fraserの答えを拡張すると、最善の方法は、grepおよびsortでdumpsysを使用することです。

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

Grep式は、...blahblah.SOME_INTENT:の形式のようなインテントで終わる行のみを確実にキャッチします。すべてをキャッチできるわけではありませんが、良いスタートです。

3
not2qubit

GET_INTENTS_FILTERがあります-今後インテントフィルターをクエリするために使用するように宣言されています。参照 http://code.google.com/p/Android/issues/detail?id=3217

しかし、Android=チームの優先度は低いです。パッチを提出する人はいますか?

3
friedger

(部分的な回答)IntentFiltersは、アプリケーションの.apkファイルに含まれるAndroidManifest.xmlファイルで定義されます。 (次のように->->-> XML要素内:

デバイスに保存されているすべての.apkファイルで定義されているすべてのインテントを検索するためのAPIが見つかりません。システムは、以下のすべてのインテントのリストを検索します。Android.content.Context.startActivity(Intent intent)これは、Android.app.ActivityManagerNative.startActivity()のネイティブメソッドを呼び出し、プロセス間通信(IPC)メカニズムを使用します(シリアル化を使用) 「Parcel」オブジェクト内の情報)インテントを検索してアクティビティを開始します。だから私はそれが実際にどのように行われるかを見つけることができました。

.apkファイルへの読み取りアクセス権を取得できるようです(多くは/system/app/*.apkに保存されています)。 .apkファイルは.jarファイルであり、その中にAndroidManifest.xmlファイルが含まれているため、プログラムはマニフェストを読み取って解析し、IntentFiltersを見つけることができますが、これを簡単にするAPIが必要です。

3
Ribo

sdk/platforms/Android-x/data/broadcast_actions.txtで標準アクションとカテゴリのリストを確認できます

3
IronBlossom

日付として、これは公式ドキュメントによるリストです

Android@intent@action@AIRPLANE_MODE
Android@intent@action@ALL_APPS
Android@intent@action@ANSWER
Android@intent@action@APPLICATION_PREFERENCES
Android@intent@action@APP_ERROR
Android@intent@action@ASSIST
Android@intent@action@ATTACH_DATA
Android@intent@action@BATTERY_CHANGED
Android@intent@action@BATTERY_LOW
Android@intent@action@BATTERY_OKAY
Android@intent@action@BOOT_COMPLETED
Android@intent@action@BUG_REPORT
Android@intent@action@CALL
Android@intent@action@CALL_BUTTON
Android@intent@action@CARRIER_SETUP
Android@intent@action@CLOSE_SYSTEM_DIALOGS
Android@intent@action@CONFIGURATION_CHANGED
Android@intent@action@CREATE_DOCUMENT
Android@intent@action@DATE_CHANGED
Android@intent@action@VIEW
Android@intent@action@DEFINE
Android@intent@action@DELETE
Android@intent@action@DEVICE_STORAGE_LOW
Android@intent@action@DEVICE_STORAGE_OK
Android@intent@action@DIAL
Android@intent@action@DOCK_EVENT
Android@intent@action@DREAMING_STARTED
Android@intent@action@EDIT
Android@intent@action@EXTERNAL_APPLICATIONS_AVAILABLE
Android@intent@action@EXTERNAL_APPLICATIONS_UNAVAILABLE
Android@intent@action@FACTORY_TEST
Android@intent@action@GET_CONTENT
Android@intent@action@GET_RESTRICTION_ENTRIES
Android@intent@action@GTALK_CONNECTED
Android@intent@action@GTALK_DISCONNECTED
Android@intent@action@HEADSET_PLUG
Android@intent@action@INPUT_METHOD_CHANGED
Android@intent@action@INSERT
Android@intent@action@INSERT_OR_EDIT
Android@intent@action@INSTALL_FAILURE
Android@intent@action@INSTALL_PACKAGE
Android@intent@action@LOCALE_CHANGED
Android@intent@action@LOCKED_BOOT_COMPLETED
Android@intent@action@MAIN
Android@intent@action@MANAGED_PROFILE_ADDED
Android@intent@action@MANAGED_PROFILE_AVAILABLE
Android@intent@action@MANAGED_PROFILE_REMOVED
Android@intent@action@MANAGED_PROFILE_UNAVAILABLE
Android@intent@action@MANAGED_PROFILE_UNLOCKED
Android@intent@action@MANAGE_NETWORK_USAGE
Android@intent@action@MANAGE_PACKAGE_STORAGE
Android@intent@action@MEDIA_BAD_REMOVAL
Android@intent@action@MEDIA_BUTTON
Android@intent@action@MEDIA_CHECKING
Android@intent@action@MEDIA_EJECT
Android@intent@action@MEDIA_MOUNTED
Android@intent@action@MEDIA_NOFS
Android@intent@action@MEDIA_REMOVED
Android@intent@action@MEDIA_SCANNER_FINISHED
Android@intent@action@MEDIA_SCANNER_SCAN_FILE
Android@intent@action@MEDIA_SCANNER_STARTED
Android@intent@action@MEDIA_SHARED
Android@intent@action@MEDIA_UNMOUNTABLE
Android@intent@action@MEDIA_UNMOUNTED
Android@intent@action@MY_PACKAGE_REPLACED
Android@intent@action@MY_PACKAGE_SUSPENDED
Android@intent@action@MY_PACKAGE_UNSUSPENDED
Android@intent@action@NEW_OUTGOING_CALL
Android@intent@action@OPEN_DOCUMENT
Android@intent@action@OPEN_DOCUMENT_TREE
Android@intent@action@PACKAGES_SUSPENDED
Android@intent@action@PACKAGES_UNSUSPENDED
Android@intent@action@PACKAGE_ADDED
Android@intent@action@PACKAGE_CHANGED
Android@intent@action@PACKAGE_DATA_CLEARED
Android@intent@action@PACKAGE_FIRST_LAUNCH
Android@intent@action@PACKAGE_FULLY_REMOVED
Android@intent@action@PACKAGE_INSTALL
Android@intent@action@PACKAGE_NEEDS_VERIFICATION
Android@intent@action@PACKAGE_REMOVED
Android@intent@action@PACKAGE_REPLACED
Android@intent@action@PACKAGE_RESTARTED
Android@intent@action@PACKAGE_VERIFIED
Android@intent@action@PASTE
Android@intent@action@PICK
Android@intent@action@PICK_ACTIVITY
Android@intent@action@ACTION_POWER_CONNECTED
Android@intent@action@ACTION_POWER_DISCONNECTED
Android@intent@action@POWER_USAGE_SUMMARY
Android@intent@action@PROCESS_TEXT
Android@intent@action@PROVIDER_CHANGED
Android@intent@action@QUICK_CLOCK
Android@intent@action@QUICK_VIEW
Android@intent@action@REBOOT
Android@intent@action@RUN
Android@intent@action@SCREEN_OFF
Android@intent@action@SCREEN_ON
Android@intent@action@SEARCH
Android@intent@action@SEARCH_LONG_PRESS
Android@intent@action@SEND
Android@intent@action@SENDTO
Android@intent@action@SEND_MULTIPLE
Android@intent@action@SET_WALLPAPER
Android@intent@action@SHOW_APP_INFO
Android@intent@action@ACTION_SHUTDOWN
Android@intent@action@SYNC
Android@intent@action@SYSTEM_TUTORIAL
Android@intent@action@TIMEZONE_CHANGED
Android@intent@action@TIME_SET
Android@intent@action@TIME_TICK
Android@intent@action@TRANSLATE
Android@intent@action@UID_REMOVED
Android@intent@action@UMS_CONNECTED
Android@intent@action@UMS_DISCONNECTED
Android@intent@action@UNINSTALL_PACKAGE
Android@intent@action@USER_BACKGROUND
Android@intent@action@USER_FOREGROUND
Android@intent@action@USER_INITIALIZE
Android@intent@action@USER_PRESENT
Android@intent@action@USER_UNLOCKED
Android@intent@action@VIEW
Android@intent@action@VIEW_LOCUS
Android@intent@action@VIEW_PERMISSION_USAGE
Android@intent@action@VOICE_COMMAND
Android@intent@action@WALLPAPER_CHANGED
Android@intent@action@WEB_SEARCH
Android@intent@category@ALTERNATIVE
Android@intent@category@APP_BROWSER
Android@intent@category@APP_CALCULATOR
Android@intent@category@APP_CALENDAR
Android@intent@category@APP_CONTACTS
Android@intent@category@APP_EMAIL
Android@intent@category@APP_FILES
Android@intent@category@APP_GALLERY
Android@intent@category@APP_MAPS
Android@intent@category@APP_MESSAGING
Android@intent@category@APP_MUSIC
Android@intent@category@BROWSABLE
Android@intent@category@CAR_DOCK
Android@intent@category@CAR_MODE
Android@intent@category@DEFAULT
Android@intent@category@DESK_DOCK
Android@intent@category@DEVELOPMENT_PREFERENCE
Android@intent@category@EMBED
Android@intent@category@FRAMEWORK_INSTRUMENTATION_TEST
Android@intent@category@HE_DESK_DOCK
Android@intent@category@HOME
Android@intent@category@INFO
Android@intent@category@LAUNCHER
Android@intent@category@LEANBACK_LAUNCHER
Android@intent@category@LE_DESK_DOCK
Android@intent@category@MONKEY
Android@intent@category@OPENABLE
Android@intent@category@PREFERENCE
Android@intent@category@SAMPLE_CODE
Android@intent@category@SECONDARY_HOME
Android@intent@category@SELECTED_ALTERNATIVE
Android@intent@category@TAB
Android@intent@category@TEST
Android@intent@category@TYPED_OPENABLE
Android@intent@category@UNIT_TEST
Android@intent@category@VOICE
Android@intent@category@VR_HOME
Android@intent@extra@ALARM_COUNT
Android@intent@extra@ALLOW_MULTIPLE
Android@intent@extra@ALLOW_REPLACE
Android@intent@extra@ALTERNATE_INTENTS
Android@intent@extra@ASSIST_CONTEXT
Android@intent@extra@ASSIST_INPUT_DEVICE_ID
Android@intent@extra@ASSIST_INPUT_HINT_KEYBOARD
Android@intent@extra@ASSIST_PACKAGE
Android@intent@extra@ASSIST_UID
Android@intent@extra@AUTO_LAUNCH_SINGLE_CHOICE
Android@intent@extra@BCC
Android@intent@extra@BUG_REPORT
Android@intent@extra@changed_component_name
Android@intent@extra@changed_component_name_list
Android@intent@extra@changed_package_list
Android@intent@extra@changed_uid_list
Android@intent@extra@CHOOSER_REFINEMENT_INTENT_SENDER
Android@intent@extra@CHOOSER_TARGETS
Android@intent@extra@CHOSEN_COMPONENT
Android@intent@extra@CHOSEN_COMPONENT_INTENT_SENDER
Android@intent@extra@COMPONENT_NAME
Android@intent@extra@CONTENT_ANNOTATIONS
Android@intent@extra@CONTENT_QUERY
Android@intent@extra@DATA_REMOVED
Android@intent@extra@DOCK_STATE
Android@intent@extra@DONT_KILL_APP
Android@intent@extra@DURATION_MILLIS
Android@intent@extra@EMAIL
Android@intent@extra@EXCLUDE_COMPONENTS
Android@intent@extra@FROM_STORAGE
Android@intent@extra@HTML_TEXT
Android@intent@extra@INDEX
Android@intent@extra@INITIAL_INTENTS
Android@intent@extra@INSTALLER_PACKAGE_NAME
Android@intent@extra@INTENT
Android@intent@extra@KEY_EVENT
Android@intent@extra@LOCAL_ONLY
Android@intent@extra@LOCUS_ID
Android@intent@extra@MIME_TYPES
Android@intent@extra@NOT_UNKNOWN_SOURCE
Android@intent@extra@ORIGINATING_URI
Android@intent@extra@PACKAGE_NAME
Android@intent@extra@PHONE_NUMBER
Android@intent@extra@PROCESS_TEXT
Android@intent@extra@PROCESS_TEXT_READONLY
Android@intent@extra@QUICK_VIEW_FEATURES
Android@intent@extra@QUIET_MODE
Android@intent@extra@REFERRER
Android@intent@extra@REFERRER_NAME
Android@intent@extra@remote_intent_token
Android@intent@extra@REPLACEMENT_EXTRAS
Android@intent@extra@REPLACING
Android@intent@extra@restrictions_bundle
Android@intent@extra@restrictions_intent
Android@intent@extra@restrictions_list
Android@intent@extra@RESULT_RECEIVER
Android@intent@extra@RETURN_RESULT
Android@intent@extra@shortcut@ICON
Android@intent@extra@shortcut@ICON_RESOURCE
Android@intent@extra@shortcut@ID
Android@intent@extra@shortcut@INTENT
Android@intent@extra@shortcut@NAME
Android@intent@extra@SHUTDOWN_USERSPACE_ONLY
Android@intent@extra@SPLIT_NAME
Android@intent@extra@STREAM
Android@intent@extra@SUBJECT
Android@intent@extra@SUSPENDED_PACKAGE_EXTRAS
Android@intent@extra@TEMPLATE
Android@intent@extra@TEXT
Android@intent@extra@TITLE
Android@intent@extra@UID
Android@intent@extra@USER
0
Sanchit Gupta