通过检测它是2.1设备在1.6目标应用程序中显示动态壁纸?

时间:2010-04-02 14:07:46

标签: android wallpaper android-sdk-2.1 android-sdk-1.6

我们正在使用目标SDK 1.6构建Android应用,因此它将在1.6及更高版本的设备上运行。我们想支持动态壁纸,我们知道只有2.1+。有没有办法用1.6 SDK作为目标构建一个应用程序,但检测它运行的设备是否为2.1,并且仅在该场景中调用动态壁纸API。

我们试图避免必须构建单独的1.6和2.1版本,并且希望能够仅为2.1设备支持动态壁纸。所以要明确一个应用程序,它可以支持1.6和更高版本,并支持2.1设备的动态壁纸。

任何方式这样做?

1 个答案:

答案 0 :(得分:2)

也许。我还没有使用动态壁纸,但这里是我在2. *上使用AccountManager的方法,但是在1. *的情况下有一个后备,但它不可用。

我使用2.1 SDK构建,但我的Manifest声明

<uses-sdk android:minSdkVersion="3" />

这允许应用程序在1.5设备上运行。

我将android.accounts.AccountManager的使用限制在一个包装类中,我称之为UserEmailFetcher。

可以在2. *设备上使用此类。但是在早期设备上,java.lang.VerifyError将在代码中第一次遇到此类时触发。我抓住了,并执行一些后退行动。

String name;
try {
   name = UserEmailFetcher.getEmail(this); 
} catch (VerifyError e) {
   // Happens if the AccountManager is not available (e.g. 1.x)
}

希望有所帮助。