Thanks Mark, all works well as directed.

On Dec 21, 12:47 pm, Mark Murphy <[email protected]> wrote:
> Mark Wyszomierski wrote:
> > Hi,
>
> > I'm using the level 5 sdk to compile my app, but set my target to sdk
> > level 3 in my manifest. All is fine.
>
> > I may need to use some level 5 classes (ExifInterface) though. What's
> > the right way to go about using them while not fouling things up for
> > devices running older sdk versions? Do we simply restrict use of the
> > newer API methods to completely separate class files? Something like
> > this:
>
> >   // Test.java
> >   class Test
> >   {
> >       public boolean sdkDependentItem() {
> >           if (Build.VERSION.SDK.equals("5")) {
> >               return (new sdk5()).getItem();
> >           }
> >           else {
> >               return (new sdk3and4()).getItem();
> >           }
> >       }
> >    }
>
> >   // sdk5.java
> >   class sdk5 {
> >       public boolean getItem() {
> >           // can use sdk level 5 apis in here ok.
> >       }
> >   }
>
> >   // sdk3and4.java
> >   class sdk3and4 {
> >       public boolean getItem() {
> >           // can use sdk level 3 and 4 apis in here ok.
> >       }
> >   }
>
> > so as long as the api methods are completely separated into files that
> > the older devices won't invoke, we should be ok?
>
> I wouldn't do:
>
> if (Build.VERSION.SDK.equals("5")) {
>
> Instead, parse it to an integer and do a >=5 comparison. After all, most
> DROIDs are now on API 6 (i.e., Android 2.0.1). And, once you drop older
> SDK support, you can use SDK_INT and skip the parse step.
>
> If you are going to make the request a lot, you might consider having
> your two implementations extend a common abstract class or implement a
> common interface. Then, you can make the determination of which one to
> use once and hold onto that object, calling it by the common interface
> as needed.
>
> Otherwise, the notion of "if I don't load the class, there will be no
> harm in it referencing newer API capabilities" is sound.
>
> --
> Mark Murphy (a Commons 
> Guy)http://commonsware.com|http://twitter.com/commonsguy
>
> _The Busy Coder's Guide to Android Development_ Version 2.8
> Available!

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