2010-06-11 113 views
12

我正在写旅行指南相关的应用程序,将下载大型数据库(60meg)潜在的海外,与可达性代码,我可以告诉何时可以通过wifi或3G到达主机,但我担心,如果由于某种原因的WiFi连接断了一分钟左右,因为有些DSL连接有时可能会做,iphone会切换到3G,并且没有意识到我可以用海外数据费用来收取某些电话账单!在任何情况下,我可以阻止iPhone使用3G吗?

所以我想知道如果任何人有任何经验,在无线连接(wifi仍然可以工作,但它的网络连接断开)这样的事件中,可达性代码报告ReachableViaWWAN?所以我可以等到我的下载代码返回,检查主机当前是否可以访问,如果它是通过3G我可以中止?

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

+3

很高兴看到一位开发人员关注不要让用户过度使用。有一个upvote。 – samoz 2010-06-11 14:11:05

+1

如果您确实可以控制要使用哪个网络,则可以将其设置为用户可配置的设置。有些人可能不介意在需要时回归3G(例如,他们有新的2GB计划,不介意60MB下载)。 – Jeff 2010-06-11 14:18:27

+1

它的目的是为用户配置,但如果他们说“没有3G下载”,我必须有一些实现它的方法。 – dageshi 2010-06-11 14:23:30

回答

0

是的,在settings-> general-> network下,可以关闭3G。但iPhone仍然会使用非3G蜂窝。

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

+0

我想OP会询问他们是否可以从应用内以编程方式禁止3G数据,就像Skype应用一样。 – 2010-06-11 14:16:38

+0

好的,不清楚,但在二读时,我认为你是对的。 – 2010-06-11 14:20:51

+0

是的,但谢谢你,我不知道你可以在飞行模式下打开wifi。 – dageshi 2010-06-11 14:26:38

5

如果您查看可访问性示例中的Reachability.h,则会有一个常量定义为“kReachabilityChangedNotification”。如果你要求得到变化的通知 - 假设这听起来像是这样 - 你可以在下降到3G时停止连接。

+0

是的,从阅读它看起来这是唯一的方法。只是大量的调试来测试它如预期的那样工作我猜。 – dageshi 2010-06-11 14:27:40

1

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

+1

ahhh o.k可能会很方便。 – dageshi 2010-06-11 14:24:47

+0

你打赌,我总是保持关闭,因为我接近边界 – progrmr 2010-06-11 17:44:58

0

否; Unix风格的IP不能像那样工作。使用可达性代码主要是正确的,但在处理通知之前,仍然有可能通过3G发送几个数据包。

假设不关闭“数据漫游”的用户可以非常快地完成此操作。另一方面,许多用户不会有无限的互联网计划。

其中一种选择是显示“未通过Wi-Fi连接,是否要通过小区网络下载大量数据?您可能会被收费。”并将其存储在一个设置中。

+0

仅供参考,AT&T正朝着有限的数据计划发展,如果你每月保持在2G以下(我从来没有接近过,我自己),这些计划会更便宜。无限帐户目前已经盛行,但新帐户将有1G或2G的限制,我认为此后为10美元/ G,并且为当月的成本上限。 – 2010-06-11 20:09:05

相关问题