iOS 7 引入了一个新的用户配置来禁用特定应用的蜂窝数据。它可以在“设置”->“蜂窝”中进行配置,然后向下滚动。
您会为每个已安装的应用找到一个开关,并且可以查看它消耗了多少蜂窝数据。
如何以编程方式测试我的应用是否打开了开关?有那个API吗?我可以确定我的应用通过蜂窝网络使用了多少数据吗?
我不是要获取所有应用程序的值。我只对我的应用程序使用感兴趣。
没有 API 可以检测您的下载消耗或手机是否对您的应用程序处于活动状态。
如果您的应用尝试连接到网站,但蜂窝网络已关闭,则 iOS 可能会要求用户重新打开蜂窝网络。我不确定它是如何工作的,但它可能类似于 iOS 6“无网络连接”警报,如果没有连接但应用程序尝试访问互联网,则会弹出该警报。
您可以检查当前的互联网连接是通过 WiFi 还是蜂窝网络,但如果蜂窝网络被禁用,您只会被告知没有网络连接。
更多细节在这里:iOS Detect 3G or WiFi
您无法检查蜂窝数据开关是否已打开。
kSCNetworkReachabilityFlagsIsWWAN
最接近的是,您可以使用 SCNetworkReachability标志检查是否可以通过蜂窝连接访问特定主机。allowsCellularAccess
此外,您可以使用 NSURLRequest属性启用/禁用特定连接的蜂窝数据。这个答案表明如何在系统范围内测量数据使用情况:iPhone 数据使用跟踪/监控