我们如何知道iOS应用程序何时开始在编解码器中使用3G/4G?

我们如何知道iOS应用程序何时开始在编解码器中使用3G/4G?,ios,objective-c,Ios,Objective C,我们的项目又大又复杂。它是关于在代码中的某个地方流式传输在线视频,或者使用internet的一些其他活动,例如,Web服务、下载等。。我负责在应用程序开始使用3G或4G互联网服务时显示通知 是否有任何库支持此功能 我们的项目是用Objective-C编写的,支持ios8、ios9和ios10,运行在iPhone、iPad上。您可以使用以下命令检测当前的连接类型 奇怪的是,这不是文档,您必须检查源标题。这是AppStore保存 有官方文件: 不确定KVO是否正在处理此属性。 有一个更改通知:CTR

我们的项目又大又复杂。它是关于在代码中的某个地方流式传输在线视频,或者使用internet的一些其他活动,例如,Web服务、下载等。。我负责在应用程序开始使用3G或4G互联网服务时显示通知

是否有任何库支持此功能


我们的项目是用Objective-C编写的,支持ios8、ios9和ios10,运行在iPhone、iPad上。

您可以使用以下命令检测当前的连接类型

奇怪的是,这不是文档,您必须检查源标题。这是AppStore保存

有官方文件:

不确定KVO是否正在处理此属性。 有一个更改通知:CTRadioAccessTechnologyDidChangeNotification

从CTTelephonyNetworkInfo.h标题:

/*
 * currentRadioAccessTechnology
 *
 * Discussion:
 *   The current radio access technology the device is registered with. May be NULL
 *   if device is not registered on any network.
 */
@property (nonatomic, readonly, retain, nullable) NSString* currentRadioAccessTechnology __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);

不幸的是,iOS SDK的可能副本不允许您观察连接的特定蜂窝网络。如果你看一看苹果创建的可达性实用程序,这是你在网络条件下所能期望的最大功能。但是,有一些方法可以通过使用AVPlayer中的函数来猜测速度。你可以观察缓冲区的填充率,看看互联网下载比特或播放的速度有多快。@Ollie:不,不一样。可达性是检查你是否有互联网。它不会检查你的应用程序是否正在使用互联网。你的应用程序可以连接互联网,但它不使用互联网。啊,我明白了!我认为这句话是:我负责在应用程序开始使用3G或4G互联网服务时显示通知,意思是当应用程序开始使用连接时,而不是当设备实际开始使用连接时。@chipbk10,如果您查看可达性框架,它实际上会让您知道是否有internet连接,但它也会告诉您连接的方式。它会让你知道它是Wifi还是手机。但是,它不会告诉您使用的是哪种类型的蜂窝连接。只要阅读代码,您就会看到连接类型的枚举。具体地说,这一行+ StaseCyPureExababyFoLoalWiFii不会考虑文档中没有任何东西来确保应用程序商店的安全。无论如何,这是个好发现。不,我没有否决你的答案……我用过一些应用程序,可以说公共SDK中的任何东西都应该是AppStore save。有一些文件: