我正在研究一个iPhone应用程序,并且真的想确定设备是否在漫游,这样我就可以智能地避免我的用户在家庭网络外花费昂贵的连接。有什么方法可以确定iPhone是否在漫游?
我写的应用程序是用于越狱手机,但是如果可能的话,我宁愿使用标准SDK。
以下是我已经发现:
1.苹果的SDK: 在苹果的文档,我发现苹果的SCNetworkReachability API的承诺。该API提供对诸如您是否在WIFI或手机网络,目前是否建立了网络连接等等的访问。但是,搜索“漫游”或“漫游”的SCNetworkReachability API参考文档都将变为零。他们的示例代码也是如此。
2.越狱iPhone的FS: 首选项 - >一般 - >网络选项卡是用户可以打开或关闭他们的漫游。展望这个plist文件(“/Applications/Preferences/Network.plist”)我能找到以下引用:
PostNotification = "com.apple.commcenter.InternationalRoamingEDGE.changed";
cell = PSSwitchCell;
default = 1;
defaults = "com.apple.commcenter";
key = InternationalRoamingEDGE;
label = "EDGE_ROAMING_TOGGLE";
requiredCapabilities = (
telephony
);
这当然是一个领导,因为它似乎我可以报名通知该用户已更改InternationalRoaming设置。不过,我不确定如何将其转化为他们实际上正在漫游的知识。
3.检查类倾倒跳板来源: 我甩了跳板使用class-dump的类。我无法找到“漫游”或“漫游”
4.很显然,我开始通过SO检查此的任何引用: 无法找到任何有关。
更多步骤:有没有人有任何建议吗? 我知道这是可能的。然而,苹果显然已经让它很难找到。我非常怀疑这可能没有使用私人框架。 (如CoreTelephony)。由于这是一款越狱应用程序,因此我可能会通过在SpringBoard中注入代码来屏幕截取运营商名称,但我真的宁愿不去那条路线。任何建议非常感谢。谢谢。
你可以试试[Apple Developer Forums](http://devforums.apple.com/)。 – 2009-05-23 04:51:59