iPhone 3G / WiFi 连接

6

我想制作一个iPhone应用程序,它使用Wifi收集一些数据,并使用3G将此数据发送到互联网。 Wifi连接将是adhoc类型,不提供任何互联网连接。因此,在这种情况下,Wifi仅是数据收集接口。

这可行吗?

更多技术细节: - iPhone连接到adhoc网络并选择自动IP,例如169.254.x.x - 从169.254.1.1(传感器的已知IP)获取数据 - 使用web服务将数据发送到www.xyz.com/dataEntry

另外,我进行了小测试: - 在我的Win7上创建了一个P2P访问点 - 将我的iPhone连接到P2P访问点 - 尝试在互联网上浏览网站,但失败了。例如,我无法打开google.com。

Android怎么样?虽然不那么重要,但我也希望在Android上提供该应用程序。

谢谢, F.


听起来我们都处于类似的情况。你能提供一个你是如何让某个东西工作的示例吗?我有一个开放的问题,链接是https://dev59.com/6FzUa4cB1Zd3GeqP7uqu。 - AtomRiot
3个回答

3
对于 iPhone,大多数人都会开始使用/使用 Apple Reachability 示例代码。 使用该代码,很容易判断当前的互联网连接是否为 wifi 连接。 如果不是 wifi,则可以假定它是 3G 连接。
对于 Android,您可以使用 ConnectivityManager getActiveNetworkInfo() API 来获取当前的网络信息。

1
不要假设是3G,如果不是wifi。有特定的枚举值ReachableViaWWAN和ReachableViaWifi,请检查这些值。如果是NotReachable,则需要通知用户3G连接不可用,并让他们随意重试连接,或者在3G恢复后自动重试连接(所有这些都显示在Reachability示例中)。此外,这是比苹果示例代码更好的Reachability版本:http://blog.ddg.com/?p=24 - user244343
谢谢大家的回复。但这并没有真正回答我的问题。我们正在讨论同时工作的两个不同网络域。WiFi用于本地子网,没有互联网连接,而3G用于互联网上的服务器。 - Frank
据我所知,你不能同时在 iPhone 上拥有两个连接... - Shane Powell
@darvids0n是正确的。我以前没有看过那个版本的Reachability代码,谢谢! - Shane Powell
好的,我已经证明这个可行。我已经成功地通过WiFi发送和接收数据包(到IP 169.254.1.1,即传感器),并通过蜂窝网络实现了对www.apple.com的网络连接。所以,是的。但是,有一个很讨厌的bug,我的手机在多次测试后停止了通过3G工作,需要重新启动才能恢复。我也会追踪这个问题。 - Frank

1

iPhone在连接到ad-hoc WiFi网络时将保持其3G链接。这就是tether.com的工作原理。即使WiFi已经打开并连接到互联网,有时它甚至会在存在开放的TCP/IP连接时保持3G网络的活动状态。

Android手机根本无法连接到ad-hoc网络。API 14(ICS)提供了手机对手机之间的WiFiDirect连接,但仅限于Android手机之间。当然,您可以对手机进行root操作并允许ad-hoc连接。


0
简短回答:是的,它可以工作! 基本上,您的主要iPhone将具有一个SSID,这将使其他设备能够连接到它。这些设备会自动分配与主设备相同子网中的IP地址。一旦它们没有默认网关分配,它们就无法连接到互联网。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接