GCKDeviceManager 類別

GCKDeviceManager 類別參考資料

總覽

投放裝置的控制器。

這個類別可以傳送訊息到 > 收發、啟動及關閉在 Cast 裝置上執行的應用程式。

只要已建立 Cast 裝置的連線,或是正在進行建立或下架程序,GCKDeviceManager 執行個體就必須持續在範圍內。在透過 connect (GCKDeviceManager) 開始連線,或在叫用 deviceManager:didDisconnectWithError: (GCKDeviceManagerDelegate-p)deviceManager:didSuspendConnectionWithReason: (GCKDeviceManagerDelegate-p)deviceManager:didFailToConnectWithError: (GCKDeviceManagerDelegate-p) 委派回呼之後,您都可以釋出物件。

Deprecated:
使用 GCKSessionManagerGCKCastSession 與 Cast 接收器互動。

沿用 NSObject。

執行個體方法摘要

(instancetype) - initWithDevice:clientPackageName:
 使用指定裝置建構新的 GCKDeviceManager更多...
 
(instancetype) - initWithDevice:clientPackageName:ignoreAppStateNotifications:
 指定初始化器。更多...
 
(void) - connect
 連線至裝置。更多...
 
(void) - disconnect
 中斷與裝置的連線。更多...
 
(void) - disconnectWithLeave:
 中斷與裝置的連線。更多...
 
(BOOL) - addChannel:
 新增可使用特定命名空間收發這個裝置的訊息。更多...
 
(BOOL) - removeChannel:
 移除先前新增的頻道。更多...
 
(NSInteger) - launchApplication:
 啟動應用程式。更多...
 
(NSInteger) - launchApplication:withLaunchOptions:
 使用指定的啟動選項啟動應用程式。更多...
 
(NSInteger) - launchApplication:relaunchIfRunning:
 啟動應用程式 (如果已正在執行),可選擇重新啟動。更多...
 
(NSInteger) - joinApplication:
 加入應用程式。更多...
 
(NSInteger) - joinApplication:sessionID:
 使用特定應用程式工作階段 ID 加入應用程式。更多...
 
(BOOL) - leaveApplication
 退出目前的應用程式。更多...
 
(NSInteger) - stopApplication
 停止任何執行中的應用程式。更多...
 
(NSInteger) - stopApplicationWithSessionID:
 停止使用指定應用程式工作階段 ID 的應用程式。更多...
 
(NSInteger) - setVolume:
 設定系統音量。更多...
 
(NSInteger) - setMuted:
 開啟或關閉靜音功能。更多...
 
(NSInteger) - requestDeviceStatus
 要求裝置目前的狀態。更多...
 

屬性摘要

BOOL ignoreAppStateNotifications
 這個物件是否可監聽應用程式狀態通知。更多...
 
GCKConnectionState connectionState
 裝置管理工具目前的連線狀態。更多...
 
GCKConnectionState applicationConnectionState
 裝置管理工具目前的應用程式連線狀態。更多...
 
BOOL isConnected
 如果裝置管理員已與裝置建立連線,則傳回 True。更多...
 
BOOL isConnectedToApp
 如果裝置管理員已與裝置上的應用程式建立連線,則傳回 True。更多...
 
BOOL isReconnecting
 如果裝置管理員因暫時性事件而中斷 (例如應用程式在背景執行,或者發生網路錯誤,但可重新連線),就可能傳回 True。更多...
 
NSTimeInterval reconnectTimeout
 如果通訊端已中斷且可能發生暫時性錯誤,系統會再次嘗試連線。更多...
 
GCKDevicedevice
 受這個 GCKDeviceManager 控制的裝置。更多...
 
id< GCKDeviceManagerDelegatedelegate
 接收 GCKDeviceManager 通知的委派項目。更多...
 
float deviceVolume
 裝置的已知音量,範圍為 [0.0, 1.0] (如果已知);否則為 0。更多...
 
BOOL deviceMuted
 裝置目前的靜音狀態 (如果知道);NO更多...
 
GCKActiveInputStatus activeInputStatus
 裝置目前的「有效輸入」狀態。更多...
 
GCKStandbyStatus standbyStatus
 裝置目前的「待機」狀態。更多...
 
NSString * applicationSessionID
 目前已連結的接收器應用程式的應用程式工作階段 ID (如果有的話);否則為 nil更多...
 
GCKApplicationMetadataapplicationMetadata
 目前在接收器上執行的接收器應用程式中繼資料 (如果有的話);否則為 nil更多...
 
NSString * applicationStatusText
 目前回報的接收器應用程式的最新狀態文字 (如果有的話);否則為 nil更多...
 

方法說明

- (instancetype) initWithDevice: (GCKDevice *)  device
clientPackageName: (NSString *)  clientPackageName 

使用指定裝置建構新的 GCKDeviceManager

該物件會監聽應用程式狀態通知,並在應用程式進入背景時自動與裝置中斷連線,並在應用程式回到前景時嘗試重新連線到裝置。

Parameters
deviceThe device to control.
clientPackageNameThe client package name.
- (instancetype) initWithDevice: (GCKDevice *)  device
clientPackageName: (NSString *)  clientPackageName
ignoreAppStateNotifications: (BOOL)  ignoreAppStateNotifications 

指定初始化器。

建構新的 GCKDeviceManager 以控制指定裝置。

如果 ignoreAppStateNotificationsNO,則物件會監聽應用程式狀態的變更,並在應用程式進入背景時自動與裝置中斷連線,並在應用程式返回前景時嘗試重新連線到裝置。

如果 ignoreAppStateNotificationsYES,則物件不會監聽這些通知,而應用程式也必須負責管理連線生命週期。請注意,一般的背景 iOS 應用程式通常無法繼續執行,作業系統最終也會關閉其運作中的網路連線。

Parameters
deviceThe device to control.
clientPackageNameThe client package name.
ignoreAppStateNotificationsWhether this object will ignore app state notifications.
- (void) connect

連線至裝置。

- (void) disconnect

中斷與裝置的連線。

這是明顯的斷線。

在呼叫 connect 之後的某一天,必然需要 1.

- (void) disconnectWithLeave: (BOOL)  leaveApplication

中斷與裝置的連線。

在呼叫 connect 之後的某一天,必然需要 1.

Parameters
leaveApplicationYES if this is an explicit disconnect that should disconnect from ("leave") the receiver application before closing the connection; NO if this is an implicit disconnect that should just close the connection.
- (BOOL) addChannel: (GCKCastChannel *)  channel

新增可使用特定命名空間收發這個裝置的訊息。

Parameters
channelThe channel.
傳回
如已新增頻道,則為 YES;如果未新增該頻道,因為該命名空間已附加頻道。NO
- (BOOL) removeChannel: (GCKCastChannel *)  channel

移除先前新增的頻道。

Parameters
channelThe channel.
傳回
如頻道已遭移除,則為 NO;如果指定的頻道先前未附加,因此不會遭到移除。
- (NSInteger) launchApplication: (NSString *)  applicationID

啟動應用程式。

Parameters
applicationIDThe application ID.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) launchApplication: (NSString *)  applicationID
withLaunchOptions: (GCKLaunchOptions *__nullable)  launchOptions 

使用指定的啟動選項啟動應用程式。

Parameters
applicationIDThe application ID.
launchOptionsThe launch options for this request. If nil, defaults will be used.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) launchApplication: (NSString *)  applicationID
relaunchIfRunning: (BOOL)  relaunchIfRunning 

啟動應用程式 (如果已正在執行),可選擇重新啟動。

Deprecated:
請改用 launchApplication:withLaunchOptions:
Parameters
applicationIDThe application ID.
relaunchIfRunningIf YES, relaunches the application if it is already running instead of joining the running application.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) joinApplication: (NSString *__nullable)  applicationID

加入應用程式。

Parameters
applicationIDThe application ID. If nil, attempts to join whichever application is currently running; otherwise, attempts to join the specified application.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) joinApplication: (NSString *)  applicationID
sessionID: (NSString *)  sessionID 

使用特定應用程式工作階段 ID 加入應用程式。

如果指定的工作階段 ID 已失效,則要求將會失敗。

Parameters
applicationIDThe application ID.
sessionIDThe application session ID.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (BOOL) leaveApplication

退出目前的應用程式。

傳回
無法傳送訊息時,請NO
- (NSInteger) stopApplication

停止任何執行中的應用程式。

傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) stopApplicationWithSessionID: (NSString *__nullable)  sessionID

停止使用指定應用程式工作階段 ID 的應用程式。

如果指定的工作階段 ID 已失效,則要求將會失敗。

Parameters
sessionIDThe application session ID, which may not be nil.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) setVolume: (float)  volume

設定系統音量。

Parameters
volumeThe new volume, in the range [0.0, 1.0]. Out of range values will be silently clipped.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) setMuted: (BOOL)  muted

開啟或關閉靜音功能。

Parameters
mutedWhether audio should be muted or unmuted.
傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID
- (NSInteger) requestDeviceStatus

要求裝置目前的狀態。

系統會在收到更新狀態資訊後,叫用所有委派狀態更新回呼。

傳回
要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID

資源詳細資料

- (BOOL) ignoreAppStateNotifications
readnonatomicassign

這個物件是否可監聽應用程式狀態通知。

可在初始化器中指定這個標記。預設值為 NO

- (GCKConnectionState) connectionState
readnonatomicassign

裝置管理工具目前的連線狀態。

- (GCKConnectionState) applicationConnectionState
readnonatomicassign

裝置管理工具目前的應用程式連線狀態。

- (BOOL) isConnected
readnonatomicassign

如果裝置管理員已與裝置建立連線,則傳回 True。

Deprecated:
使用 connectionState
- (BOOL) isConnectedToApp
readnonatomicassign

如果裝置管理員已與裝置上的應用程式建立連線,則傳回 True。

Deprecated:
使用 applicationConnectionState
- (BOOL) isReconnecting
readnonatomicassign

如果裝置管理員因暫時性事件而中斷 (例如應用程式在背景執行,或者發生網路錯誤,但可重新連線),就可能傳回 True。

請注意,當裝置管理員在潛在的暫時性事件發生後嘗試重新連線時,系統不會呼叫中斷連線/連線回呼,但屬性一律會反映實際目前的狀態,而且能夠加以觀察。

- (NSTimeInterval) reconnectTimeout
readwritenonatomicassign

如果通訊端已中斷且可能發生暫時性錯誤,系統會再次嘗試連線。

預設的逾時時間長度為 15 秒。

- (GCKDevice*) device
readnonatomicassign

受這個 GCKDeviceManager 控制的裝置。

- (id<GCKDeviceManagerDelegate>) delegate
readwritenonatomicweak

接收 GCKDeviceManager 通知的委派項目。

- (float) deviceVolume
readnonatomicassign

裝置的已知音量,範圍為 [0.0, 1.0] (如果已知);否則為 0。

- (BOOL) deviceMuted
readnonatomicassign

裝置目前的靜音狀態 (如果知道);NO

- (GCKActiveInputStatus) activeInputStatus
readnonatomicassign

裝置目前的「有效輸入」狀態。

- (GCKStandbyStatus) standbyStatus
readnonatomicassign

裝置目前的「待機」狀態。

- (NSString*) applicationSessionID
readnonatomiccopy

目前已連結的接收器應用程式的應用程式工作階段 ID (如果有的話);否則為 nil

每次收到接收器應用程式 (包括重新啟動同一個應用程式) 時,即會產生一個新的專屬工作階段 ID,只要接收器應用程式持續執行,該工作階段 ID 就會保持有效。

- (GCKApplicationMetadata*) applicationMetadata
readnonatomiccopy

目前在接收器上執行的接收器應用程式中繼資料 (如果有的話);否則為 nil

- (NSString*) applicationStatusText
readnonatomiccopy

目前回報的接收器應用程式的最新狀態文字 (如果有的話);否則為 nil