ความตั้งใจที่จะเข้าร่วม

"ความตั้งใจที่จะเข้าร่วม" เป็นฟีเจอร์ใหม่ของผู้ส่ง Android ที่อนุญาตให้แอปของผู้ส่ง "เข้าร่วม" เซสชันแคสต์ที่เริ่มต้นโดยแอปหรือเสียงอื่น คุณสามารถตั้งค่าแอปของผู้ส่งให้เปิดขึ้นโดย Intent ที่ Cast SDK สร้างขึ้น

ตัวอย่างเช่น เมื่อใช้เสียงเพื่อเริ่มเซสชัน Cast SDK จะสร้างการแจ้งเตือนที่อนุญาตให้ผู้ใช้ควบคุมการเล่นในโทรศัพท์ Android ทุกเครื่องในเครือข่ายเดียวกัน เมื่อแตะการแจ้งเตือนแล้ว Cast SDK จะสร้าง เจตนาที่จะเปิดแอปเพื่อเข้าร่วมเซสชันแคสต์

ดู ตัวอย่าง CastVideos-Android สำหรับการนำ Intent ที่จะเข้าร่วมไปใช้ในแบบต่างๆ

ใช้ Android Sender

หากต้องการเปิดใช้ฟีเจอร์นี้ ให้ทำตามขั้นตอนต่อไปนี้ในแอป

ตรวจสอบว่าแอปของคุณใช้ Android Sender SDK เวอร์ชันสูงกว่า 11.4.0 อยู่แล้ว ใน build.gradle:

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

เพิ่มตัวกรอง Intent ใหม่ในกิจกรรมที่คุณต้องการจัดการ Intent การแจ้งเตือนรีโมตคอนโทรล (RCN) จะใช้ Intent เพื่อเปิดแอปและเข้าร่วมเซสชันการแคสต์ เราขอแนะนำให้ใช้กิจกรรมที่มี SessionManagerListener โฮสต์อยู่ และจะมีการเรียก onSessionStarted() หรือ onSessionStartFailed() ตรวจสอบว่าตัวกรอง Intent ใหม่ไม่ซ้ำกันทั้งระบบ 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"/>

ในกิจกรรมที่คุณกำหนดตัวกรอง Intent ใหม่ ให้เรียกใช้ SessionManager.startSession(Intent) ใน onResume()

คอตลิน
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);
    }
    ...
}

การตั้งค่าแผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google Cast

หากต้องการใช้ฟีเจอร์ Intent เพื่อเข้าร่วม คุณต้องเพิ่ม URI ของแอปและชื่อแพ็กเกจในแผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google Cast

นอกจากนี้ รีซีฟเวอร์ของคุณจะต้องอยู่ในรายการและเผยแพร่เพื่อให้ Intent เข้าร่วม ทำงานได้อย่างถูกต้อง

หากต้องการแสดงแอป ให้สลับตัวเลือกรายการเป็น "ใช่" และระบุชื่อ คำอธิบาย และกราฟิกขนาด 512x512 สำหรับแอป

หลังการตั้งค่า คุณสามารถทดสอบการใช้งานกับการแจ้งเตือนรีโมตคอนโทรล (RCN) ได้ดังนี้

  1. ติดตั้งแอป Google Home ในโทรศัพท์ Android แล้วเชื่อมต่อ Wi-Fi ในโทรศัพท์
  2. อุปกรณ์ที่พร้อมใช้งาน Cast จะตั้งค่าอุปกรณ์ Google Home ภายใต้เครือข่ายเดียวกัน
  3. เริ่มเซสชันการแคสต์ด้วยอุปกรณ์ Google Home โดยใช้ Command and Control (CaC) Tool, อุปกรณ์ Android หรือ iOS เครื่องอื่น หรือใช้เสียงและตรวจสอบว่ามีการเปิดแอป Web Receiver ไว้หรือไม่
  4. รอสักครู่เพื่อรับ RCN ในโทรศัพท์และแตะการแจ้งเตือนเพื่อทริกเกอร์ Intent ควรประกาศ Intent ไปยังทุกแอปที่ลงทะเบียน Intent กับข้อมูลที่จำเป็นในการเข้าร่วมเซสชัน

SessionManagerListener.onSessionStarted(T, String) จะทริกเกอร์และเข้าร่วมเซสชัน

การยืนยัน

หากแอปเข้าร่วมเซสชันสำเร็จ ระบบจะเรียก SessionManagerListener.onSessionStarted(T, String) มิเช่นนั้นระบบจะเรียก SessionManagerListener.onSessionStartFailed(T, int) สมมติว่าแอปของคุณจัดการเหตุการณ์เหล่านั้นได้อย่างถูกต้องแล้ว (เช่น การเปิดตัวตัวควบคุมที่ขยายหรือตัวควบคุมขนาดเล็ก) คุณก็ไม่ต้องดำเนินการใดๆ เพิ่มเติม