On Nov 2, 5:02 pm, frantz lohier <[email protected]> wrote:


>  + in the Market, should we upload different app versions compiled for
> different SDK/OS configuration ? Can the market app offer a specific version
> of an app to an end-user depending on what OS version is used ?

It would certainly make our lives easier if the Market supported
alternative binaries for different OS versions.

>  + how does an app know what OS version is currently used ?
>  + how can an app dynamically make use of new SDK feature with the same
> executable ? (for example, how can I activate TTS if it is supported).
> Backward compatibility is discussed 
> here:http://android-developers.blogspot.com/2009/04/backward-compatibility....
> Unfortunatly, this link does not tell me how to selectively do an "import
> android.speech.tts.TextToSpeech" for my code to compile.

What you can do is build against the 2.0 SDK, but wrap up all your 2.0
stuff in a class which you only instantiate if you are on a 2.0
device.
Build a base class which is mostly abstract, and a 1.6 version of the
same class which implements the same functionality but with 1.6 APIs.
Then use this trick to instantiate the right subclass:

int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
if (sdkVersion < Build.VERSION_CODES.ECLAIR)
{
  className = "com.foo.ContactAccessorSdk3_4";   // one subclass of
ContactAccessorBase
}
else
{
  className = "com.foo.ContactAccessorSdk5"; // another subclass of
ContactAccessorBase
}

 /*
  * Find the required class by name and instantiate it.
  */
  try {
         Class<? extends ContactAccessor> clazz =
                        Class.forName(className).asSubclass
(ContactAccessor.class);
                ContactAccessorBase sInstance = clazz.newInstance();
      } catch (Exception e) {
  throw new IllegalStateException(e);
}

(thanks, Dmitri!)




> On Mon, Nov 2, 2009 at 8:54 AM, frantz lohier <[email protected]> wrote:
> > Thanks Jarkman for your perspectives on this.
>
> > 2 additional questions;
>
> > - can the emulator simulate accessing a gmail account ? (as ways to avoid
> > dealing with the Accountmanager APIs)
>
> > - A more general and critical question; if apps start to have to behave
> > differently based on the Android OS version they run on, there are a lot of
> > implications;
>
> > On Mon, Nov 2, 2009 at 2:33 AM, jarkman <[email protected]> wrote:
>
> >> On Nov 2, 1:57 am, frantz lohier <[email protected]> wrote:
>
> >> > When running the same code (compiled with SDK 1.6) and a target emulator
> >> at
> >> > 2.0 level, the above code never return the entries I have populated in
> >> my
> >> > the phone book. It's as if the phonebook was always empty.
>
> >> My (hazy) understanding is that the 1.6 APIs will only show you the
> >> contacts in the primary gmail-syncing account on the device. As the
> >> emulator doesn't have one of those accounts, your newly-entered
> >> contacts are in a different account (or in some kind of no-account
> >> limbo), so they are invisible to the 1.6 APIs.
>
> >> I think that on a real device with a real account the situation will
> >> be better, though you still need to move to the 2.0 APIs to support
> >> users who have multiple accounts.
>
> >> It may be possible to use the AccountManager APIs to manufacture an
> >> account of the right sort in the emulator, which would make it
> >> possible to enter new contacts who would show up in the 1.6 APIs, but
> >> I don't think there are enough clues in the published docs to tell us
> >> how to do that.
>
> >> > - When running the emulator in 2.0 mode, the default local input type is
> >> > Japaneese. Any way to change this ?
>
> >> Yes, you can fiddle with the IME settings in the Settings app, in
> >> 'Language & Keyboard'.
>
> >> Richard
>
> >> --
> >> 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]<android-developers%[email protected]>
> >> For more options, visit this group at
> >>http://groups.google.com/group/android-developers?hl=en
>
>

-- 
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