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

2024-04-27

我们正在使用目标 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(使用前将#替换为@)

通过检测 1.6 目标应用程序是否是 2.1 设备来显示动态壁纸? 的相关文章

随机推荐