總覽
投放裝置的控制器。
這個類別可以傳送訊息到 > 收發、啟動及關閉在 Cast 裝置上執行的應用程式。
只要已建立 Cast 裝置的連線,或是正在進行建立或下架程序,GCKDeviceManager 執行個體就必須持續在範圍內。在透過 connect (GCKDeviceManager) 開始連線,或在叫用 deviceManager:didDisconnectWithError: (GCKDeviceManagerDelegate-p)、deviceManager:didSuspendConnectionWithReason: (GCKDeviceManagerDelegate-p) 或 deviceManager:didFailToConnectWithError: (GCKDeviceManagerDelegate-p) 委派回呼之後,您都可以釋出物件。
- Deprecated:
- 使用 GCKSessionManager 和 GCKCastSession 與 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 |
如果通訊端已中斷且可能發生暫時性錯誤,系統會再次嘗試連線。更多... | |
GCKDevice * | device |
受這個 GCKDeviceManager 控制的裝置。更多... | |
id< GCKDeviceManagerDelegate > | delegate |
接收 GCKDeviceManager 通知的委派項目。更多... | |
float | deviceVolume |
裝置的已知音量,範圍為 [0.0, 1.0] (如果已知);否則為 0。更多... | |
BOOL | deviceMuted |
裝置目前的靜音狀態 (如果知道);NO 。更多... | |
GCKActiveInputStatus | activeInputStatus |
裝置目前的「有效輸入」狀態。更多... | |
GCKStandbyStatus | standbyStatus |
裝置目前的「待機」狀態。更多... | |
NSString * | applicationSessionID |
目前已連結的接收器應用程式的應用程式工作階段 ID (如果有的話);否則為 nil 。更多... | |
GCKApplicationMetadata * | applicationMetadata |
目前在接收器上執行的接收器應用程式中繼資料 (如果有的話);否則為 nil 。更多... | |
NSString * | applicationStatusText |
目前回報的接收器應用程式的最新狀態文字 (如果有的話);否則為 nil 。更多... | |
方法說明
- (instancetype) initWithDevice: | (GCKDevice *) | device | |
clientPackageName: | (NSString *) | clientPackageName | |
使用指定裝置建構新的 GCKDeviceManager。
該物件會監聽應用程式狀態通知,並在應用程式進入背景時自動與裝置中斷連線,並在應用程式回到前景時嘗試重新連線到裝置。
- Parameters
-
device The device to control. clientPackageName The client package name.
- (instancetype) initWithDevice: | (GCKDevice *) | device | |
clientPackageName: | (NSString *) | clientPackageName | |
ignoreAppStateNotifications: | (BOOL) | ignoreAppStateNotifications | |
指定初始化器。
建構新的 GCKDeviceManager 以控制指定裝置。
如果 ignoreAppStateNotifications 為 NO
,則物件會監聽應用程式狀態的變更,並在應用程式進入背景時自動與裝置中斷連線,並在應用程式返回前景時嘗試重新連線到裝置。
如果 ignoreAppStateNotifications 為 YES
,則物件不會監聽這些通知,而應用程式也必須負責管理連線生命週期。請注意,一般的背景 iOS 應用程式通常無法繼續執行,作業系統最終也會關閉其運作中的網路連線。
- Parameters
-
device The device to control. clientPackageName The client package name. ignoreAppStateNotifications Whether this object will ignore app state notifications.
- (void) connect |
連線至裝置。
- (void) disconnect |
- (void) disconnectWithLeave: | (BOOL) | leaveApplication |
中斷與裝置的連線。
在呼叫 connect 之後的某一天,必然需要 1.
- Parameters
-
leaveApplication YES
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
-
channel The channel.
- 傳回
- 如已新增頻道,則為
YES
;如果未新增該頻道,因為該命名空間已附加頻道。NO
- (BOOL) removeChannel: | (GCKCastChannel *) | channel |
移除先前新增的頻道。
- Parameters
-
channel The channel.
- 傳回
- 如頻道已遭移除,則為
NO
;如果指定的頻道先前未附加,因此不會遭到移除。
- (NSInteger) launchApplication: | (NSString *) | applicationID |
- (NSInteger) launchApplication: | (NSString *) | applicationID | |
withLaunchOptions: | (GCKLaunchOptions *__nullable) | launchOptions | |
使用指定的啟動選項啟動應用程式。
- Parameters
-
applicationID The application ID. launchOptions The launch options for this request. If nil
, defaults will be used.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) launchApplication: | (NSString *) | applicationID | |
relaunchIfRunning: | (BOOL) | relaunchIfRunning | |
啟動應用程式 (如果已正在執行),可選擇重新啟動。
- Parameters
-
applicationID The application ID. relaunchIfRunning If YES
, relaunches the application if it is already running instead of joining the running application.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) joinApplication: | (NSString *__nullable) | applicationID |
加入應用程式。
- Parameters
-
applicationID The 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
-
applicationID The application ID. sessionID The application session ID.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (BOOL) leaveApplication |
退出目前的應用程式。
- 傳回
- 無法傳送訊息時,請
NO
。
- (NSInteger) stopApplication |
停止任何執行中的應用程式。
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) stopApplicationWithSessionID: | (NSString *__nullable) | sessionID |
停止使用指定應用程式工作階段 ID 的應用程式。
如果指定的工作階段 ID 已失效,則要求將會失敗。
- Parameters
-
sessionID The application session ID, which may not be nil
.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) setVolume: | (float) | volume |
設定系統音量。
- Parameters
-
volume The new volume, in the range [0.0, 1.0]. Out of range values will be silently clipped.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) setMuted: | (BOOL) | muted |
開啟或關閉靜音功能。
- Parameters
-
muted Whether audio should be muted or unmuted.
- 傳回
- 要求 ID;如果無法傳送請求,則為 kGCKInvalidRequestID。
- (NSInteger) requestDeviceStatus |
資源詳細資料
|
readnonatomicassign |
這個物件是否可監聽應用程式狀態通知。
可在初始化器中指定這個標記。預設值為 NO
。
|
readnonatomicassign |
裝置管理工具目前的連線狀態。
|
readnonatomicassign |
裝置管理工具目前的應用程式連線狀態。
|
readnonatomicassign |
如果裝置管理員已與裝置建立連線,則傳回 True。
|
readnonatomicassign |
如果裝置管理員已與裝置上的應用程式建立連線,則傳回 True。
|
readnonatomicassign |
如果裝置管理員因暫時性事件而中斷 (例如應用程式在背景執行,或者發生網路錯誤,但可重新連線),就可能傳回 True。
請注意,當裝置管理員在潛在的暫時性事件發生後嘗試重新連線時,系統不會呼叫中斷連線/連線回呼,但屬性一律會反映實際目前的狀態,而且能夠加以觀察。
|
readwritenonatomicassign |
如果通訊端已中斷且可能發生暫時性錯誤,系統會再次嘗試連線。
預設的逾時時間長度為 15 秒。
|
readnonatomicassign |
受這個 GCKDeviceManager 控制的裝置。
|
readwritenonatomicweak |
接收 GCKDeviceManager 通知的委派項目。
|
readnonatomicassign |
裝置的已知音量,範圍為 [0.0, 1.0] (如果已知);否則為 0。
|
readnonatomicassign |
裝置目前的靜音狀態 (如果知道);NO
。
|
readnonatomicassign |
裝置目前的「有效輸入」狀態。
|
readnonatomicassign |
裝置目前的「待機」狀態。
|
readnonatomiccopy |
目前已連結的接收器應用程式的應用程式工作階段 ID (如果有的話);否則為 nil
。
每次收到接收器應用程式 (包括重新啟動同一個應用程式) 時,即會產生一個新的專屬工作階段 ID,只要接收器應用程式持續執行,該工作階段 ID 就會保持有效。
|
readnonatomiccopy |
目前在接收器上執行的接收器應用程式中繼資料 (如果有的話);否則為 nil
。
|
readnonatomiccopy |
目前回報的接收器應用程式的最新狀態文字 (如果有的話);否則為 nil
。