Ý định tham gia

"Ý định tham gia" là một tính năng mới của Trình gửi Android, cho phép ứng dụng của người gửi "tham gia" một phiên Truyền do các ứng dụng hoặc giọng nói khác khởi tạo. Bạn thiết lập ứng dụng dành cho người gửi để chạy một ý định do SDK Truyền tạo.

Ví dụ: khi sử dụng giọng nói để bắt đầu phiên Truyền, SDK Truyền sẽ tạo thông báo cho phép người dùng điều khiển chế độ phát trên tất cả các điện thoại Android trên cùng một mạng. Khi người dùng nhấn vào thông báo, Cast SDK sẽ tạo ý định chạy ứng dụng của bạn để tham gia phiên Truyền.

Xem mẫu CastVideos-Android để biết cách triển khai hoạt động của Intent to Join (Ý định tham gia).

Sử dụng Android Sender

Để bật tính năng này, hãy thực hiện các bước sau trong ứng dụng của bạn:

Đảm bảo ứng dụng của bạn đang sử dụng SDK Android Sender phiên bản lớn hơn 11.4.0. Trong build.gradle:

dependencies {
    api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}

Thêm bộ lọc ý định mới vào hoạt động mà bạn muốn xử lý ý định. Ý định sẽ được Thông báo điều khiển từ xa (RCN) sử dụng để khởi chạy ứng dụng của bạn và tham gia một phiên Truyền. Bạn nên sử dụng hoạt động nơi SessionManagerListener được lưu trữ và onSessionStarted() hoặc onSessionStartFailed() sẽ được gọi. Đảm bảo bộ lọc ý định mới là duy nhất trên toàn bộ hệ thống Android. Bạn nên sử dụng thẻ <data> để làm điều đó như sau:

<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>

Ví dụ về thẻ <data>:

<data android:scheme="https" android:host="example.com"
      android:path="/cast/join"/>

Trong hoạt động mà bạn xác định bộ lọc ý định mới, hãy gọi SessionManager.startSession(Intent) trong onResume():

Kotlin
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)
    }
    ...
}
Java
@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);
    }
    ...
}

Thiết lập Bảng điều khiển dành cho nhà phát triển Google Cast

Để sử dụng tính năng Ý định tham gia, bạn phải thêm URI ứng dụng và tên gói trong Google Cast Developer Console.

Trình thu nhận của bạn cũng phải được liệt kê và xuất bản để Intent to Join hoạt động đúng cách.

Để liệt kê ứng dụng, hãy chuyển tuỳ chọn danh sách thành "CÓ" rồi cung cấp tiêu đề, nội dung mô tả cũng như hình ảnh đồ hoạ 512x512 cho ứng dụng.

Sau khi thiết lập, bạn có thể kiểm thử quá trình triển khai bằng Thông báo điều khiển từ xa (RCN) như dưới đây:

  1. Cài đặt ứng dụng Google Home trên điện thoại Android rồi kết nối với Wi-Fi trên điện thoại.
  2. Thiết bị hỗ trợ Cast sẽ thiết lập thiết bị Google Home trong cùng một mạng.
  3. Bắt đầu phiên Truyền với thiết bị Google Home bằng Công cụ Command và Control (CaC), một thiết bị Android hoặc iOS khác hoặc thông qua giọng nói và kiểm tra xem ứng dụng Bộ thu web đã chạy hay chưa.
  4. Chờ vài giây để tải RCN trên điện thoại rồi nhấn vào thông báo để kích hoạt ý định. Ý định phải được truyền đi đến mọi ứng dụng đăng ký ý định đó bằng dữ liệu bắt buộc để tham gia phiên.

SessionManagerListener.onSessionStarted(T, String) sẽ được kích hoạt và tham gia phiên này.

Xác minh

Nếu ứng dụng tham gia phiên này thành công, thì SessionManagerListener.onSessionStarted(T, String) sẽ được gọi. Nếu không, SessionManagerListener.onSessionStartFailed(T, int) sẽ được gọi. Giả sử ứng dụng của bạn đã xử lý các sự kiện đó đúng cách (ví dụ: khởi chạy bộ điều khiển mở rộng hoặc bộ điều khiển thu nhỏ), bạn không phải làm gì thêm.