我正在使用Android应用,我想使用多点触控。但是,我不想完全忽略那些仍在运行1.x OS手机的人。如何对应用程序进行编程,以便您可以使用2.x多点触控API(或任何其他更高级别的API)并仍允许它在1.x系统上正常降级。如果您在Eclipse中为1.x创建项目,您甚至可以访问2.x API吗? 基本上我希望它能够在市场上出现并适用于所有1.6及更高版本的手机,并且只允许访问更高级别的功能。
此外,如果有人可以向我指出有关1.x设备与2.x设备使用数量的任何数据,我们将不胜感激。
答案 0 :(得分:2)
关于此主题的Android文章名为“Backward Compatibility for Applications”。基本上你可以做两件事:
设置minSdkVersion,以便应用程序将自己标识为与Android版本兼容的Android版本兼容。
使用反射来访问较新的API。
您还可以创建一个包装类来提高速度/易用性,但这只是#2的风格。
答案 1 :(得分: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)
}
希望有所帮助。
答案 2 :(得分:0)
使用反射似乎是要走的路:) 你好p2p API级别14的Android Wifi
http://developer.android.com/resources/articles/backward-compatibility.html