GCKDeviceManager 類別

GCKDeviceManager 類別參考資料

總覽

Cast 裝置的控制器。

這個類別可以傳送及接收訊息、啟動及關閉在 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 之後,且在擁有者釋出這個物件之前,必須呼叫其中一個中斷連線方法。

- (void) disconnectWithLeave: (BOOL)  leaveApplication

中斷與裝置的連線。

在呼叫 connect 之後,且在擁有者釋出這個物件之前,必須呼叫其中一個中斷連線方法。

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.
傳回
YES (如果頻道已移除),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