Is there a cellular data usage API in iOS 7?

蓝咒 提交于 2020-01-20 02:20:25

问题


iOS 7 introduced a new user configuration to disable cellular data for specific apps. It can be configured in "Settings"->"Cellular" and then scrolling down.

You'll find a switch for each installed app and can see how much cellular data it has consumed.

How can I programmatically test if the switch is turned on for my app? Is there an API for that? Can I determine how much data my app has used over cellular?

I'm not asking to get the values for all apps. I'm only interested in my apps usage.


回答1:


There is no API to detect your download consumption or whether cellular is active for your app.

If your app tries to connect to a website, but cellular is turned off, then iOS may ask the user to turn cellular back on. I'm not exactly sure how that works, but it is probably similar to the iOS 6 "no network connection" alert that would pop up if there is no connection but an app tries to access the internet.

You can check if the current internet connection is over WiFi or Cellular, but if Cellular is disabled you will just be told that there is no network connection.

More details here: iOS Detect 3G or WiFi




回答2:


You can't check if the cellular data switch is turned on.

  • The closest thing is that you can check if a specific host is reachable over cellular connection using the SCNetworkReachability kSCNetworkReachabilityFlagsIsWWAN flag.
  • Additionally, you can enable/disable cellular data for specific connections using the NSURLRequest allowsCellularAccess property.

Reference: https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/Platform-SpecificNetworkingTechnologies/Platform-SpecificNetworkingTechnologies.html

This answer suggests how data usage can be measured system-wide: iPhone Data Usage Tracking/Monitoring



来源:https://stackoverflow.com/questions/19170888/is-there-a-cellular-data-usage-api-in-ios-7

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!