iOS 7中是否有蜂窝数据使用量的API?

12

iOS 7引入了一个新的用户配置选项,可以禁用特定应用程序的蜂窝数据。它可以在“设置”->“蜂窝移动数据”中进行配置,然后向下滚动。

设置屏幕截图

您会发现每个安装的应用程序都有一个开关,可以查看它消耗了多少蜂窝数据。

我如何以编程方式测试我的应用程序的开关是否打开?有API吗?我能确定我的应用程序使用了多少蜂窝数据吗?

我不是要获取所有应用程序的值,我只对我的应用程序使用情况感兴趣。


我在苹果开发者论坛上找到了一个提到这个问题的帖子。但是似乎没有相应的API。请参见此处https://devforums.apple.com/message/855240。 - Klaas
我正在开发一款iPad应用程序,但是我的iPad上没有任何应用程序显示在“蜂窝移动数据使用”下面,我的客户希望我们的应用程序能够显示在该选项下。我正在使用带有效SIM卡的iPad3,如何才能实现这个要求呢? - Sudheer Kumar Palchuri
@palchuri 你确定你的应用程序已经在蜂窝网络上产生了一些流量吗? - Klaas
2个回答

4

没有API可以检测您的应用程序的下载使用情况或蜂窝数据是否处于活动状态。

如果您的应用程序尝试连接到一个网站,但蜂窝数据被关闭了,那么iOS可能会要求用户重新开启蜂窝数据。我不确定这是如何工作的,但它可能类似于iOS 6中的“无网络连接”警告,如果没有连接但应用程序尝试访问互联网,它会弹出该警告。

您可以检查当前的互联网连接是通过WiFi还是蜂窝数据,但如果蜂窝数据被禁用,您只会被告知没有网络连接。

更多详细信息请参见:iOS Detect 3G or WiFi


1
你无法检查移动数据开关是否打开。
最接近的方法是,使用 SCNetworkReachability 的 kSCNetworkReachabilityFlagsIsWWAN 标志,可以检查特定主机在蜂窝连接下是否可达。
此外,可以使用 NSURLRequest 的 allowsCellularAccess 属性,为特定连接启用/禁用蜂窝数据。
参考资料:https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/Platform-SpecificNetworkingTechnologies/Platform-SpecificNetworkingTechnologies.html 这个答案建议如何系统范围内测量数据使用情况:iPhone Data Usage Tracking/Monitoring

从iOS9开始,这个说法不再正确。请参考https://dev59.com/YGEh5IYBdhLWcg3wTB_2#48160099 - Paul King

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