My employer has a customer with the good fortune of having products that will be shipped with some OEM devices. This has raised some questions about updating the application that, despite having researched this subject on this group and in some others, we are still unsure about.
1) It appears that built-in applications are installed in the /system subtree of the files system, which is read-only to everyone but those with root permissions. This means that any updates with a higher VersionCode that are delivered via the Android Market would be placed into the /data subtree, and the application in the /system subtree would be somehow become inactive. Later, when a new system update becomes available, if the built-in application has a VersionCode that is higher than the one in the /data subtree, that application would be "deactivated" and the one in the system image would become active again. Is this still the way it still works? I gleaned this information from a discussion on this group, from last December, here: http://groups.google.com/group/android-developers/browse_thread/thread/d13977fdf2d4e344/39b9bddefce94121?lnk=gst&q=pre+installed+apps+update#39b9bddefce94121 2) Is it possible to determine whether a specific application instance is built-in, updated from a built-in instance, or was installed by the user from the Marketplace? We theorize that by testing the flags in the ApplicationInfo object, we could tell. This is our proposed test: if (appInfo.flag & (FLAG_UPDATED_SYSTEM_APP || FLAG_SYSTEM) ) { // App is a built-in, or update of a built-in app } else { // App was installed by the user } Does this seem correct? 3) We would like for a check to occur when the application communicates with a server that would determine whether the user requires an update in order to perform the action that they wish to happen. If we determine that the user would benefit from an update, can we trigger the application to update itself, either from the server or redirect the user to the Marketplace, saving the user the task? 4) Another thing I read, here: http://groups.google.com/group/android-developers/browse_thread/thread/8e2fa96ceb7a3ecc/d0d12e55a91c4644?show_docid=d0d12e55a91c4644&pli=1 seemed to say that the Marketplace is currently unable to determine if applications that are pre-loaded are out of date with updates that are uploaded to the Market and that it would be up to the user to go to the Market and see if there are updates available. Does that seem like how 3) above could be accomplished? (i.e. the application web server would notify the user that an update is available and cause the user to go to the Market to update the app) Is this still the case? Sorry for so many questions. I realize that not too many applications become part of an OEM build, so these questions are not very general- purpose. Thank you for your patience! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en