GCKDeviceProvider 類別

GCKDeviceProvider 類別參考資料

總覽

用於執行裝置探索和工作階段建構的抽象基礎類別。

如要新增其他裝置類型的支援,可以擴充這個類別。如需子類別適用的輔助方法清單,請參閱 GCKDeviceProvider(Protected) 類別。使用 registerDeviceProvider: (GCKCastContext) 向架構註冊新的裝置供應商。

成立時間
3.0

繼承 NSObject。

執行個體方法摘要

(instancetype) - initWithDeviceCategory:
 指定初始化器。更多...
 
(void) - startDiscovery
 開始新的探索掃描作業。更多...
 
(void) - stopDiscovery
 停止探索掃描作業。更多...
 
(GCKSession *) - createSessionForDevice:sessionID:
 為指定裝置建構新的工作階段,並視需要提供現有的工作階段 ID。更多...
 
(void) - notifyDidStartDiscovery
 通知探索管理員探索作業已開始。更多...
 
(void) - notifyDidPublishDevice:
 通知探索管理員有新裝置發布。更多...
 
(void) - notifyDidUnpublishDevice:
 通知探索管理員先前發布的裝置已取消發布,因為該裝置已無法使用。更多...
 
(void) - notifyDidUpdateDevice:
 通知探索管理員,先前發布的一或多個裝置顯示屬性 (例如好記的名稱或圖示) 已變更。更多...
 
(GCKDevice *) - createDeviceWithID:ipAddress: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: (NSString *__nullable)  sessionID 

為指定裝置建構新的工作階段,並視需要提供現有的工作階段 ID。

必須由子類別覆寫。

Parameters
deviceThe device to connect to.
sessionIDThe ID of the session to resume; or nil to start a new session.
- (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 

建構新 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.
servicePortThe service port on which connections should be made to this device. May be 0 if a service port is not applicable.

提供者:類別 GCKDeviceProvider(Protected)

資源詳細資料

- (NSString*) deviceCategory
readnonatomiccopy

這個字串會唯一識別此供應商將探索的裝置類型。

- (BOOL) passiveScan
readwritenonatomicassign

掃描是否應為被動掃描。

被動掃描傳送探索查詢的頻率較低,因此效率較高,但結果不會那麼即時。當使用者未主動選取 Cast 目標時,適合執行被動掃描。並非所有實作項目都會採用這項屬性。

- (NSArray<GCKDevice *>*) devices
readnonatomiccopy

已探索到的裝置陣列。