【问题标题】:Android application limiting features to support backwards compatibilityAndroid 应用程序限制功能以支持向后兼容性
【发布时间】:2012-04-08 15:59:27
【问题描述】:

我有一个最低 API 级别为 4 (Android 1.6) 的 Android 应用,我有一些用户使用这个版本的 Android。但是,我想实现一个使用 NFC 的功能,它需要 Android 3 或更高版本(API 级别 9+)。这意味着我必须更改清单文件中的最低 API 级别,这将疏远使用旧版本 Android 的用户。那么,如果设备不兼容,是否有办法以编程方式禁用使用 NFC 的功能,并且仍然允许使用其他功能,而不是锁定使用旧版本 Android 的用户?

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    将 min-sdk 设置为 4,将 target-sdk 设置为 9,并在您的代码中使用类似的内容:

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
      //your API-9 specific code here
    }else{
     // an alternative code
    }
    

    这对于 java 部分,在 XML 中较新的属性被忽略,因此可以安全地添加您需要的内容

    【讨论】:

    • 我暂时推迟了在我的应用程序中使用 NFC,但我对代码进行了一些尝试。这似乎是最简单的方法。
    【解决方案2】:

    阅读此http://developer.android.com/resources/articles/backward-compatibility.html。您可以使用反射 API 检查方法是否存在。阅读之前的问题:Check if method exists

    【讨论】:

      【解决方案3】:

      您需要将 API 级别的特定代码封装到外部类并使用反射来调用它们(例如使用接口)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-13
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多