2011-06-23 72 views
2

我正在解决可能嵌入某些Android应用程序的库。该库使用Android 2.2+功能,但并不意味着对目标应用程序的使用至关重要。Android定制库兼容性

因此,我希望我的lib在optionnaly目标应用中运行,只有在环境为Android 2.2+的条件下运行。它不会限制针对Android 2.2+设备编译和开发的目标应用程序,例如目标应用程序将针对Android 1.6进行编译,并且导入Android 2.2库不会混淆所有编译过程。

有什么办法可以达到这样的目标吗?

+0

我也在寻找类似的选项,就像GPS有使用它..否则市场将根据权限过滤应用程序。我不知道为什么有两个版本的应用程序只适用于没有功能的设备。 – Dileep

+0

您已将此功能之王嵌入Android SDK中,您可以在此处测试GPS的可用性:http://stackoverflow.com/questions/843675/how-do-i-find-out-if-the-gps -of-an-android-device-is-enabled – AsTeR

回答

1

是的。构建适用于Android 1.6的应用程序,并使用Build.VERSION.SDK_INT检查当前的SDK版本,并使用反射的新功能或仅在验证SDK版本后才能访问的专用类。有关更多信息,请参见Android blog post

+0

这使得它变得很痛苦......迫使你实现大量的包装以获得某种干净的代码。 – AsTeR

+0

这真的没有那么多工作。我的应用程序一直兼容到1.5,我有1.6,2.0,2.3,3.0的包装,如果你只需要为每个Android版本编写一个类,并且你需要这些功能,那么这很容易,另外一个类告诉你SDK版本。 – EboMike