我们正在使用目标 SDK 1.6 构建 Android 应用程序,因此它将在 1.6 及更高版本的设备上运行。我们希望支持动态壁纸,我们知道动态壁纸仅限 2.1+。有没有一种方法可以构建一个以 1.6 SDK 作为目标的应用程序,但检测它运行的设备是否是 2.1,并且仅在这种情况下调用动态壁纸 API。
我们试图避免构建单独的 1.6 和 2.1 版本,并且希望能够仅支持 2.1 设备的动态壁纸。所以要明确的是 - 1 个应用程序,可以支持 1.6 及更高版本,并支持 2.1 设备的动态壁纸。
有办法做到这一点吗?
或许。我没有使用过动态壁纸,但以下是我在 2.* 上使用 AccountManager 的方法,但在 1.* 上有一个后备方案,因为它不可用。
我使用 2.1 SDK 构建,但我的清单声明
<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)
}
希望有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)