【问题标题】:how best to cope with different versions of Android?如何最好地应对不同版本的Android?
【发布时间】:2011-03-28 09:44:31
【问题描述】:

我有一个在 Android 1.x 中运行良好但在 Android 2.x 中运行良好的应用 我需要根据运行应用程序的 Android 版本(查询联系人)做不同的事情。 我可以根据运行应用程序的 Android 版本在一个应用程序中选择两种不同的方法吗?

非常感谢

埃德

【问题讨论】:

    标签: android version


    【解决方案1】:

    使用反射和类加载器。请参阅 Android 开发者博客上的这篇文章:http://feedproxy.google.com/~r/blogspot/hsDu/~3/9WEwRp2NWlY/how-to-have-your-cupcake-and-eat-it-too.html

    编辑: 感谢 CommonsWare 指出一个使用新旧联系人内容提供者和条件类加载的示例项目:http://github.com/commonsguy/cw-advandroid/tree/master/Contacts/Spinners/

    【讨论】:

    【解决方案2】:

    您可以使用 BUILD.VERSION 获取 sdk 版本,检查 How to retrieve the android sdk version?

    但是,我想知道什么功能在 1.x 上可运行而在 2.x 上不可用。 你使用过任何内部类吗?

    如果可以避免的话,我真的建议你修复功能问题,而不是用不同的版本做不同的事情。

    【讨论】:

    • 在手机上查询联系人时,v2.x 使用 ContactsContract 而 v1.x 使用 Contacts.ContactMethods.CONTENT_URI(我认为是对的吗???)非常感谢
    • 是的,你是对的。该部分需要检查版本。这里有详细教程:higherpass.com/Android/Tutorials/Working-With-Android-Contacts/…
    • 非常感谢。这有点超出我的知识水平,但我会坐下来试一试。
    【解决方案3】:

    您可以读取设备的操作系统版本。根据设备操作系统版本,您可以在应用中使用不同的方法,但您只能针对一个 SDK 版本进行编译。因此,你需要选择最小值,目前是 1.6(我认为 1.5 已经很少使用了)

    见: http://developer.android.com/reference/android/os/Build.VERSION.html

    为多个屏幕/设备开发: http://developer.android.com/guide/practices/screens_support.html

    【讨论】:

    • 它只针对一个 sdk 进行编译是我的问题,不是吗?
    【解决方案4】:

    最新的 Android SDK 附带的名片示例提供了很大的帮助。我向那些像我一样可能不是专业的全职开发人员的人推荐它。谢谢大家的好意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-06
      • 2012-11-06
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多