GCKDiscoveryManager 类

GCKDiscoveryManager 类参考

概览

用于管理设备发现过程的类。

GCKDiscoveryManager 管理 GCKDeviceProvider 子类实例的集合,其中每个实例都负责发现特定类型的设备。它还维护着一个按字典顺序排序的当前发现设备的列表。

当应用转到前台时,框架会自动启动发现进程,当应用转到后台时暂停发现进程。通常,应用无需调用 startDiscovery (GCKDiscoveryManager)stopDiscovery (GCKDiscoveryManager),除非这是一种优化措施,可在应用中不使用 Cast 功能的区域降低网络流量和 CPU 利用率。

如果应用正在使用框架的 Cast 对话框(无论是通过 GCKUICastButton 还是直接呈现),该对话框将使用 GCKDiscoveryManager 来填充其可用设备列表。不过,如果应用提供了自己的设备选择/控制对话框界面,则应使用 GCKDiscoveryManager 及其关联的监听器协议 GCKDiscoveryManagerListener 来填充和更新其可用设备列表。

开始时间
3.0

此类继承 NSObject。

实例方法摘要

(instancetype) - init
 默认初始化程序不可用。更多...
 
(void) - addListener:
 添加将接收发现通知的监听器。更多...
 
(void) - removeListener:
 删除先前注册的监听器。更多...
 
(void) - startDiscovery
 启动发现过程。更多...
 
(void) - stopDiscovery
 停止发现过程。更多...
 
(BOOL) - isDiscoveryActiveForDeviceCategory:
 针对给定设备类别,测试发现功能当前是否处于活跃状态。更多...
 
(GCKDevice *) - deviceAtIndex:
 返回管理器已发现设备列表中位于指定索引的设备。更多...
 
(nullable GCKDevice *) - deviceWithUniqueID:
 返回管理器的已发现设备列表中具有指定唯一 ID 的设备。更多...
 
(void) - findDeviceWithUniqueID:timeout:completion:
 等待系统发现具有指定唯一 ID 的设备,并调用完成块。更多...
 
(void) - cancelFindOperation
 取消所有由 findDeviceWithUniqueID:timeout:completion: 启动的正在进行的查找操作。更多...
 

属性摘要

GCKDiscoveryState discoveryState
 当前发现状态。更多...
 
BOOL hasDiscoveredDevices
 一个标志,指示此对象管理的任何发现提供程序是否已发现任何设备。更多...
 
BOOL passiveScan
 一个标志,指示发现操作是否应采用“被动”扫描。更多...
 
BOOL discoveryActive
 指示发现功能是否处于活跃状态的标志。更多...
 
NSUInteger deviceCount
 当前发现的设备数量。更多...
 

方法详细信息

- (instancetype) init

默认初始化程序不可用。

- (void) addListener: (id< GCKDiscoveryManagerListener >)  listener

添加将接收发现通知的监听器。

添加的监听器处于弱保留状态,应保留该监听器,以避免意外取消分配。

Parameters
listenerThe listener to add.
- (void) removeListener: (id< GCKDiscoveryManagerListener >)  listener

删除先前注册的监听器。

Parameters
listenerThe listener to remove.
- (void) startDiscovery

启动发现过程。

- (void) stopDiscovery

停止发现过程。

- (BOOL) isDiscoveryActiveForDeviceCategory: (NSString *)  deviceCategory

针对给定设备类别,测试发现功能当前是否处于活跃状态。

- (GCKDevice *) deviceAtIndex: (NSUInteger)  index

返回管理器已发现设备列表中位于指定索引的设备。

- (nullable GCKDevice *) deviceWithUniqueID: (NSString *)  uniqueID

返回管理器的已发现设备列表中具有指定唯一 ID 的设备。

Parameters
uniqueIDThe device's unique ID.
返回
匹配的 GCKDevice 对象,如果未找到匹配的设备,则为 nil
- (void) findDeviceWithUniqueID: (NSString *)  uniqueID
timeout: (NSTimeInterval)  timeout
completion: (void(^)(GCKDevice *))  completion 

等待系统发现具有指定唯一 ID 的设备,并调用完成块。

如果匹配的设备已在已发现的设备列表中,则系统将立即调用完成块(但在此方法返回之后)。一次只能激活一项查找操作,在另一项查找操作正在进行时开始新的查找操作将会取消当前的查找操作。

Parameters
uniqueIDThe unique ID of the device.
timeoutThe maximum amount of time to wait for the device to be discovered.
completionThe completion block to invoke when either the device is found or the timeout is reached. The device (if found) or nil (if not found) will be passed to the completion block.
开始时间
4.0
- (void) cancelFindOperation

取消所有由 findDeviceWithUniqueID:timeout:completion: 启动的正在进行的查找操作。

开始时间
4.0

房源详情

- (GCKDiscoveryState) discoveryState
readnonatomicassign

当前发现状态。

- (BOOL) hasDiscoveredDevices
readnonatomicassign

一个标志,指示此对象管理的任何发现提供程序是否已发现任何设备。

- (BOOL) passiveScan
readwritenonatomicassign

一个标志,指示发现操作是否应采用“被动”扫描。

被动扫描占用的资源较少,但无法提供与主动扫描一样的新结果。

- (BOOL) discoveryActive
readnonatomicassign

指示发现功能是否处于活跃状态的标志。

开始时间
3.4
- (NSUInteger) deviceCount
readnonatomicassign

当前发现的设备数量。