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

Reply via email to