我能在任何情况下阻止iPhone使用3G吗?

我能在任何情况下阻止iPhone使用3G吗?,iphone,wifi,reachability,3g,Iphone,Wifi,Reachability,3g,我正在编写一个与旅游指南相关的应用程序,它将下载可能在海外的大型数据库(60meg),通过可访问性代码,我可以判断何时可以通过wifi或3g访问主机,但我担心,如果由于某种原因,wifi连接中断一分钟左右,就像某些DSL连接有时可能发生的那样,iphone将透明地切换到3g,而没有意识到我可能正在用海外数据向某人收取电话费指控 因此,我想知道是否有人有任何经验,在wifi连接中断的情况下(wifi仍然工作,但与网络的连接已断开),可达性代码是否会通过WWAN报告可达性?所以我可以等到我的下载代码

我正在编写一个与旅游指南相关的应用程序,它将下载可能在海外的大型数据库(60meg),通过可访问性代码,我可以判断何时可以通过wifi或3g访问主机,但我担心,如果由于某种原因,wifi连接中断一分钟左右,就像某些DSL连接有时可能发生的那样,iphone将透明地切换到3g,而没有意识到我可能正在用海外数据向某人收取电话费指控

因此,我想知道是否有人有任何经验,在wifi连接中断的情况下(wifi仍然工作,但与网络的连接已断开),可达性代码是否会通过WWAN报告可达性?所以我可以等到我的下载代码返回,检查主机当前是如何访问的,如果是通过3g,我可以中止吗


是否可以选择我可以专门使用3g或wifi的连接类型?

是的,在“设置->常规->网络”下,您可以关闭3g。但iphone仍将使用非3G手机


或者,当我出国旅行时,我会将iPhone置于飞行模式,然后手动打开wi-fi。

如果查看可达性示例,在中,有一个常量定义为“
kReachabilityChangedNotification
”如果您要求获得更改通知,假设这听起来像是在工作,您可以在连接下降到3G时停止连接。

在设置->常规->网络下有“数据漫游”。这允许您在国际旅行时关闭漫游到其他数据网络。用户已经可以选择在旅行时是否允许昂贵的3G连接。

否;Unix风格的IP不是这样工作的。使用可达性代码基本上是正确的,但在处理通知之前,仍然有可能通过3G发送一些数据包

可以安全地假设,不关闭“数据漫游”的用户会很快关闭。另一方面,许多用户不会有无限的互联网计划


一个选项是显示类似“未通过Wi-Fi连接,是否要通过手机网络下载大量数据?您可能需要付费”的内容,并将其存储在一个设置中。

很高兴看到一个开发人员担心不会欺骗他的用户。拥有向上投票权。如果您确实可以控制要使用的网络,可以将其设置为用户可配置的设置。有些人可能不介意在需要时回到3G(例如,他们有新的2GB计划,也不介意60MB的下载)。这是用户可配置的,但如果他们说“没有3G供下载”,我必须有一些方法来实现。我想OP是问他们是否可以在应用程序中以编程方式禁止3G数据,就像Skype应用程序一样。好吧,不清楚,但在二读时我认为你是对的。是的,但谢谢你,我不知道你可以在飞行模式下打开wifi。啊,好的,那可能很方便。当然,我总是把它关上,因为我离边界很近。是的,从阅读它开始,这看起来是唯一的方法。我想,只是进行了大量的调试以测试它是否如预期的那样工作。仅供参考,AT&T正朝着有限的数据计划迈进,如果你每月的数据量低于2G,这将更便宜(我自己从来没有接近过)。目前,无限量账户已被扩大,但新账户将有1G或2G限制,我认为在这之后将有10美元/克,并有一个月的成本上限。