「意圖加入」是 Android 傳送者的新功能,可讓傳送者「加入」其他應用程式或語音啟動的投放工作階段。將傳送者應用程式設為由 Cast SDK 建立的意圖啟動。
舉例來說,當使用語音啟動投放工作階段時,Cast SDK 會建立通知,讓使用者能控制相同網路中所有 Android 手機的播放作業。使用者輕觸通知時,Cast SDK 會建立啟動應用程式以加入投放工作階段的意圖。
請參閱 CastVideos-Android 範例,瞭解要加入的意圖實作。
使用 Android 寄件者
如要啟用此功能,請在應用程式中執行下列步驟:
請確認應用程式已使用 Android Sender SDK 11.4.0 以上版本。在 build.gradle
中:
dependencies {
api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}
在要處理意圖的活動中新增意圖篩選器。遠端控制通知 (RCN) 會使用該意圖啟動您的應用程式並加入投放工作階段。建議您使用託管 SessionManagerListener
的活動,並呼叫 onSessionStarted()
或 onSessionStartFailed()
。請確保新的意圖篩選器在整個 Android 系統中都不重複。建議您使用 <data>
標記完成此操作,如下所示:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="your_app_scheme" android:host="your_app_host"
android:path="your_app_path"/>
</intent-filter>
<data>
標記範例:
<data android:scheme="https" android:host="example.com"
android:path="/cast/join"/>
在您定義新意圖篩選器的活動中,在 onResume()
中呼叫 SessionManager.startSession(Intent)
:
override fun onResume() { ... val intent = intent // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>" val intentToJoinUri = Uri.parse("https://example.com/cast/join") if (intent.data != null && intent.data == intentToJoinUri) { mCastContext.sessionManager.startSession(intent) } ... }
@Override protected void onResume() { ... Intent intent = getIntent(); // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>" Uri intentToJoinUri = Uri.parse("https://example.com/cast/join"); if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) { mCastContext.getSessionManager().startSession(intent); } ... }
Google Cast 開發人員控制台設定
如要使用「意圖加入」功能,您必須在 Google Cast 開發人員控制台中新增應用程式 URI 和套件名稱。
您的接收器也必須列出並發布,才能讓意圖加入功能正常運作。
如要列出應用程式,請將商店資訊選項切換為「是」,並針對應用程式提供標題、說明和 512x512 的圖片。
設定完成後,您可以使用遠端控制通知 (RCN) 測試實作結果,如下所示:
- 在 Android 手機上安裝 Google Home 應用程式,並在手機上連線至 Wi-Fi。
- 支援 Cast 的裝置會在相同的網路中設定 Google Home 裝置。
- 使用指令與控制 (CaC) 工具、其他 Android 或 iOS 裝置,或是透過語音,檢查網路接收器應用程式是否已啟動,在 Google Home 裝置上啟動投放工作階段。
- 等待幾秒鐘才能在手機上取得 RCN,然後輕觸通知來觸發意圖。凡是使用必要資料註冊意圖的應用程式,都必須將意圖播送至加入工作階段的應用程式。
系統會觸發 SessionManagerListener.onSessionStarted(T, String)
並加入工作階段。
驗證
如果應用程式成功加入工作階段,就會呼叫 SessionManagerListener.onSessionStarted(T, String)
。否則,系統會呼叫 SessionManagerListener.onSessionStartFailed(T, int)
。假設應用程式已妥善處理這些事件 (例如啟動展開的控制器或迷你控制器),則不必採取其他行動。