On Wed, May 16, 2012 at 10:22 AM, b0b <[email protected]> wrote:
> Am I wrong thinking that since that receiver would not be declared in the
> manifest, noone would know about it anyway ?

By definition, some people know about it, such as those who wrote the
app. More importantly, it may be part of a public API supported by the
app, but one that is not visible via the manifest. This would be a
case where merely scanning the manifest would have a false negative --
there is a public integration API that is not documented in the
manifest.

> Suppose I make an app able to handle (play) http audio steams
> (action=ACTION_VIEW, mimeType=audio/*).
> I'd really like to know which apps send this intent. Why ? So I can
> advertise them to users for added functionality, hence adding value to my
> app (and to the emitting app).
> Except  for a few apps that I know send this intent, I have no idea of other
> potentially very useful apps doing the same.

Perfectly reasonable, and something that an opt-in database of apps
could handle.

> Another example. I write an app handling a list of images. I'd like to find
> another app able to display a *list* of images. Impossible,
> unless getting every image viewer app and looking at their regenerated
> manifest for the Intents they declare.

If there is a well-known implicit Intent action for this, this too is
reasonable for an opt-in database. If, on the other hand, there is no
well-known implicit Intent action for this, I don't know how you or
the other party would know that you can support this integration, let
alone implementing the mechanics of this.

> Finally another example: some apps provide open (app-specific) APIs through
> Intents. When I mean open, I mean that receivers are knowingly exported for
> public use.
> It is impossible to find out about these APIs unless you know about
> them...or you find them by luck looking at regenerated manifest xml from APK
> like it happened to me recently.

If they truly expect this to be "public use", they need to document
the actions, the extras, the circumstances under which broadcasts
should be sent, the results of such broadcasts, etc. Little of that
can be automatically derived from the manifest. This sort of data
could also be collected by some sort of opt-in database for such
integration.

What you want, in the abstract, is delightful. I even did some
preliminary analysis on how to set one up. However, the notion that a
100% reliable database can be created purely via manifests is
incorrect, IMHO. And, if such a database is to be created without the
assistance of a market (e.g., Google and Play Store) and without
copyright violations, it has to be opt-in, anyway.

It is entirely possible that Google could create this database. Ms.
Hackborn hinted as much in a post here a couple of years back. I am
not holding my breath waiting for it, though.

-- 
Mark Murphy (a Commons Guy)
http://commonsware.com | http://github.com/commonsguy
http://commonsware.com/blog | http://twitter.com/commonsguy

Warescription: Three Android Books, Plus Updates, One Low Price!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to