iOS程序化蜂窝数据控制

有没有办法以编程方式访问有时在应用程序中显示的“蜂窝数据”选项?

背景

我有一个应用程序通过互联网上传数据文件。 我已经给用户在没有连接到WiFi时禁用这种上传function的选项。

怎么样

我现在正在做的是我写了一个settings.bundle ,允许用户select一个选项,称为用户蜂窝数据在我的代码我使用Reachability.swift文件( https://github.com/ashleymills/Reachability。 swift ) – 这是一个快速包装的可达性iOS API – 基本上它可以告诉你,如果有Wifi或蜂窝networking访问。

我的代码

在我的代码做上传之前,我检查一个NSUserDefaults值(由settings.bundle

 let uploadOverCellular = NSUserDefaults.standardUserDefaults() .boolForKey("allow_upload_over_cellular") 

如果这是真的,我有无线或蜂窝互联网我允许上传继续。 如果这不是真的,我有蜂窝互联网,我停止上传。

所以这是很好的工作,然后突然我正在寻找我的应用程序的设置,我注意到我有系统蜂窝数据选项以及我的自定义使用蜂窝数据选项。 出现

在这里输入图像说明

显然,这可能会导致用户混淆 – 我想知道是否有API访问此系统级别Cellualr数据选项 – 或以某种其他方式来以编程方式控制此设置 – 我怀疑有没有,但我希望有人可以certificate我错了。

我不知道是否有权访问全局蜂窝数据设置,但是如果使用NSURLSession API来下载数据,则可以使用allowsCellularAccess = false创build一个NSURLSessionConfiguration