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

