我已经看到这个问题在网上被问了很多次,但似乎在任何地方都没有一个全面的答案。
我创建了一个需要检测网络连接类型的 J2ME 应用程序(如果通过 Wi-Fi 连接,它可以连接到不同的资源)。
这里有一个与诺基亚设备相关的答案和一个与黑莓设备相关的答案,但我也在开发:
- 华为
- 特克诺
- 三星
- 摩托罗拉
- LG
诺基亚解决方案似乎可以使用System.getProperty("com.nokia.network.access")
,那么有谁知道其他设备制造商的等效方案是什么?
我认为您可能对 MIDP 期望过高。您无疑已经意识到,使用标准 JavaME API 获取连接类型是不可能的,因此您依赖于不同品牌的专用选项,正如您也发现的那样。
您可能需要寻找替代解决方案。如果你确切地说出你想要做什么,那么也许还有其他一些聪明的“黑客”。
如果我理解正确,如果连接到 GPRS/3G,您想连接到 WAN IP,如果连接到 Wi-Fi,您想连接到 LAN IP?在这种情况下,如果是我,我会简单地确保 LAN IP 是一个静态 IP,然后总是尝试先到达那个 IP。如果您已连接到 Wi-Fi,您将能够访问它。如果没有,它将根本无法访问,然后您可以继续访问 WAN IP 地址。