【问题标题】:android sdk incompatiblities with wi-fi directandroid sdk 与 wi-fi direct 不兼容
【发布时间】:2012-11-20 13:10:15
【问题描述】:

我正在开发一个使用 wi-fi direct 模块的应用程序。众所周知,它在 Android 4.0 之前不可用,但我想在没有 wi-fi direct 的情况下保持兼容性。

问题是我正在使用 Channel 或 WifiP2pManager 等类的实例变量。当然,在 ICS 的早期版本中,它们将不可用。我只是按照Android官方开发者指南,所以看起来我没有做错任何事情。

关于如何解决这个问题的任何想法?

谢谢!

【问题讨论】:

    标签: android android-intent wifi-direct


    【解决方案1】:
    if(Build.VERSION_CODES < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        // compat code here
    } else {
      // normal code here
    }
    

    【讨论】:

    • 我现在是这样,但我的意思是在一个实例变量上。我在创建时有一个 ClassNotFoundException
    • 这是官方文档,它只是将值分配给实例变量。但是,当然,这会引发异常
    • 这不是问题。这是 Roboguice 的问题 =)
    【解决方案2】:

    让你的代码有条件,比如

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES. ICE_CREAM_SANDWICH ) {
    
      // something
    
    }
    

    或在清单中设置 minSdk 版本

    android:minSdkVersion="14"
    

    或者,如果您需要,将您的应用程序拆分为单独的模块,使核心不需要 API14,但尝试使用 wifi-direct 模块。并且 wifi-direct 模块需要 API14,因此具有适当设备的用户可以同时安装这两个模块,而其他模块只是核心。

    【讨论】:

    • 同上:我现在是这样,但我的意思是在一个实例变量上。我在创建时有一个 ClassNotFoundException
    【解决方案3】:

    这不是问题。这是 Roboguice 的问题 =)

    我刚刚打开了一个问题。只是如果有人想尝试它=)

    http://code.google.com/p/roboguice/issues/detail?id=226&thanks=226&ts=1353421889

    【讨论】: