Thanks Jarkman.

2 questions:

1) Does:
int sdkVersion = Integer.parseInt(Build.VERSION.SDK);
if (sdkVersion < Build.VERSION_CODES.ECLAIR)

Return the OS/SDK version currently run by the underlying platform or does
it return the target SDK level the APP was compiled for ?

2) Is there a way for an App to learn what is the current language
(input/display)  being used ?

Thanks,


On Mon, Nov 2, 2009 at 9:23 AM, jarkman <[email protected]> wrote:

>
>
> 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]>
> <android-developers%[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]<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