我正在开发一个iPhone应用程序,并且非常想确定设备是否正在漫游,以便我可以智能地避免在用户家庭网络之外花费昂贵的连接.
我写的应用程序是用于越狱手机,但如果可能的话,我更愿意使用标准的SDK.
这是我已经找到的:
1. Apple SDK: 在Apple文档中,我在Apple的SCNetworkReachability API中找到了承诺.通过API,您可以访问WIFI或手机网络,当前是否建立了网络连接等.但是,搜索SCNetworkReachability API参考pdf以获取"漫游"或"漫游"两者均为nil.他们的示例代码也是如此.
2.越狱iPhone FS的Grep: 首选项 - >常规 - >网络选项卡是用户可以打开或关闭漫游的地方.查看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
);
Run Code Online (Sandbox Code Playgroud)
这当然是一个领先者,因为看起来我可以注册用户更改了InternationalRoaming设置的通知.尽管如此,我不确定如何将其变成他们实际上正在漫游的知识.
3.检查SpringBoard的类转储源: 我使用class-dump转储了SpringBoard的类.我无法找到任何"漫游"或"漫游"的引用
4.显然我开始在SO检查这个: 找不到任何相关的东西.
进一步的步骤:有人在这里有任何建议吗?我知道这是可能的.但苹果显然很难找到它.我非常怀疑,如果不使用私有框架,这是可能的.(例如CoreTelephony).由于这是一个越狱的应用程序,我可能会使用SpringBoard中的注入代码来屏幕抓取运营商名称,但我真的更愿意不去那条路线.任何建议都非常感谢.谢谢.
我正在编写一个网络使用率很高的应用程序.我被告知要警告用户费用,但仅限于漫游模式.我知道有一些方法可以知道手机何时漫游比较越狱iphone上的两个未记录的文件.但我需要了解如何使用非越狱手机.BTW在SCNetworkReachability api上一无所获.
泰!
我想,当我在我的iOS应用,漫游地进入到得到通知,我已经阅读文档NSLocale, SCNetworkReachability以及核心电话(我可能错过了一些东西).我需要从sim(或任何其他方式,如果可能)获取此信息.