Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

Is there a way to list all Intents and all processes associated with them?

Specifics: Droid X, 2.2 stock ROM, rooted.

I'm perfectly fine with any approach, as long as it gets a guaranteed complete list:

  • A script or a series of commands in Terminal Emulator is fine. No limitation on supposed required technical proficiency (assume that the reader is a qualified long-term Unix power user). As noted, the phone is rooted.

  • An app is OK (ideally, it should be able to export the list, but even Autostarts-like GUI display is OK)

    Caveat: if you recommend an app (e.g. Autostarts), I would request some assurance that it does, indeed, list all registered Intent receivers, not merely some sub-set - either as documentation/statement from the author or some other evidence (e.g. analysis of which APIs the code uses).

  • Worst case scenario, I'll take an API specifics

share|improve this question
add comment

2 Answers

According to several other similar questions on stackoverflow, such a list is not available via APIs.

I'm not sure how apps like Tasker produce such lists. I wouldn't rule out iterating through all possible intents via the queryIntentActivities() function, or even parsing each installed app's manifest file.

share|improve this answer
add comment

Autostarts parses the application manifests. That's really the best way.

(There is a seemingly auto-generated broadcast_actions.txt file shipped with the Android SDK, but it's not complete, in my experience).

Depending on what is wanted, you need to consider:

  • That apps can broadcast custom events, and other apps may listen to those custom events.
  • That apps can register themselves to receive events at runtime, as opposed to statically in the manifest. Autostarts will not list those, and I am not aware that such temporary registrations are exposed in any way.
  • Autostarts only lists broadcast events. Events can also be sent directly to specific activities of specific applications. Autostarts will not list those, but the information can be found in the manifests.

You can also look at /data/system/packages.xml on your phone, which is where the PackageManager services caches information about installed packages (so it doesn't have to parse the Manifests). I don't remember if it contains information about intents - I vaguely remember that it might not include any application components that have been disabled, but I'm not sure.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.