GCKDeviceProvider 类

GCKDeviceProvider 类参考

概览

用于执行设备发现和会话构造的抽象基类。

可以通过扩展此类来添加对其他设备类型的支持。如需查看供子类使用的辅助方法列表,请参阅 GCKDeviceProvider(Protected) 类别。新的设备提供程序使用 registerDeviceProvider: (GCKCastContext) 向框架注册。

开始时间
3.0

此类继承 NSObject。

实例方法摘要

(instancetype) - initWithDeviceCategory:
 指定的初始化程序。更多...
 
(void) - startDiscovery
 启动新的发现扫描。更多...
 
(void) - stopDiscovery
 停止发现扫描。更多...
 
(GCKSession *) - createSessionForDevice:sessionID:sessionOptions:
 为给定设备构建新会话,并视需要构建现有的会话 ID。更多...
 
(GCKSession *) - createSessionForDevice:sessionID:
 为给定设备构建新会话,并视需要构建现有的会话 ID。更多...
 
(void) - notifyDidStartDiscovery
 通知发现管理器发现已启动。更多...
 
(void) - notifyDidPublishDevice:
 通知发现管理器已发布新设备。更多...
 
(void) - notifyDidUnpublishDevice:
 通知发现管理器,由于之前发布的设备不再可用,因此已被取消发布。更多...
 
(void) - notifyDidUpdateDevice:
 通知发现管理器之前发布的设备的一个或多个显示属性(例如友好名称或图标)已更改。更多...
 
(GCKDevice *) - createDeviceWithID:ipAddress:servicePort:
 
(GCKDevice *) - createDeviceWithID:networkAddress:servicePort:
 用于构建新的 GCKDevice 实例的工厂方法。更多...
 

属性摘要

NSString * deviceCategory
 一个字符串,用于唯一标识此提供程序将发现的设备类型。更多...
 
BOOL passiveScan
 扫描是否应为被动扫描。更多...
 
NSArray< GCKDevice * > * devices
 已发现设备的数组。更多...
 

方法详细信息

- (instancetype) initWithDeviceCategory: (NSString *)  deviceCategory

指定的初始化程序。

为指定类型的设备构造新的 GCKDeviceProvider

Parameters
deviceCategoryA string that uniquely identifies the type of device that is managed by by this provider.
- (void) startDiscovery

启动新的发现扫描。

这(通常)属于异步操作。如果上次扫描发现的任何设备不再有效,提供商目前应取消发布这些设备。必须被子类替换。

扫描开始(并且所有过时的设备均已取消发布)后,提供程序必须通过调用 notifyDidStartDiscovery (GCKDeviceProvider(Protected)) 通知发现管理器。如果此方法的特定实现在启动扫描时没有要执行的异步工作,则可在返回前直接调用通知方法。

- (void) stopDiscovery

停止发现扫描。

必须被子类替换。

- (GCKSession *) createSessionForDevice: (GCKDevice *)  device
sessionID: (nullable NSString *)  sessionID
sessionOptions: (nullable GCKSessionOptions *)  sessionOptions 

为给定设备构建新会话,并视需要构建现有的会话 ID。

必须被子类替换。

Parameters
deviceThe device to connect to.
sessionIDThe ID of the session to resume; or nil to start a new session.
sessionOptionsThe session options, if any; otherwise nil.
开始时间
4.0
- (GCKSession *) createSessionForDevice: (GCKDevice *)  device
sessionID: (nullable NSString *)  sessionID 

为给定设备构建新会话,并视需要构建现有的会话 ID。

Parameters
deviceThe device to connect to.
sessionIDThe ID of the session to resume; or nil to start a new session.
Deprecated:
子类应改为调用 createSessionForDevice:sessionID:sessionOptions。
- (void) notifyDidStartDiscovery

通知发现管理器发现已启动。

由“GCKDeviceProvider(Protected)”类别提供。

- (void) notifyDidPublishDevice: (GCKDevice *)  device

通知发现管理器已发布新设备。

由“GCKDeviceProvider(Protected)”类别提供。

- (void) notifyDidUnpublishDevice: (GCKDevice *)  device

通知发现管理器,由于之前发布的设备不再可用,因此已被取消发布。

由“GCKDeviceProvider(Protected)”类别提供。

- (void) notifyDidUpdateDevice: (GCKDevice *)  device

通知发现管理器之前发布的设备的一个或多个显示属性(例如友好名称或图标)已更改。

由“GCKDeviceProvider(Protected)”类别提供。

- (GCKDevice *) createDeviceWithID: (NSString *)  deviceID
ipAddress: (NSString *)  ipAddress
servicePort: (uint16_t)  servicePort 
Deprecated:
使用 createDeviceWithID:networkAddress:servicePort: 支持 IPv4 和 IPv6

用于构建新的 GCKDevice 实例的工厂方法。这些参数对应于 GCKDevice 的不可变属性。

Parameters
deviceIDThe unique ID identifying this device. This value must be unique among all GCKDevice objects that are created by this provider.
ipAddressThe IP address of the device, in numeric form (for example, @"10.0.0.10"). May not be nil. Supports IPv4 only.
servicePortThe service port on which connections should be made to this device. May be 0 if a service port is not applicable.

由“GCKDeviceProvider(Protected)”类别提供。

- (GCKDevice *) createDeviceWithID: (NSString *)  deviceID
networkAddress: (GCKNetworkAddress *)  networkAddress
servicePort: (uint16_t)  servicePort 

用于构建新的 GCKDevice 实例的工厂方法。

这些参数对应于 GCKDevice 的不可变属性。

Parameters
deviceIDThe unique ID identifying this device. This value must be unique among all GCKDevice objects that are created by this provider.
networkAddressThe IP address of the device, either IPv4 or IPv6
servicePortThe service port on which connections should be made to this device. May be 0 if a service port is not applicable.
开始时间
4.2

由“GCKDeviceProvider(Protected)”类别提供。

房源详情

- (NSString*) deviceCategory
readnonatomiccopy

一个字符串,用于唯一标识此提供程序将发现的设备类型。

- (BOOL) passiveScan
readwritenonatomicassign

扫描是否应为被动扫描。

被动扫描会降低发送发现查询的频率,因此效率更高,但结果不会那么新。在用户未主动选择 Cast 目标时,进行被动扫描是恰当的做法。并非所有实现都会遵循此属性。

- (NSArray<GCKDevice *>*) devices
readnonatomiccopy

已发现设备的数组。