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

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

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

โปรดดู ตัวอย่าง Cast Videos-Android สำหรับการใช้งาน Intent to Join.

การใช้ผู้ส่งของ Android

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

ตรวจสอบว่าแอปของคุณใช้ 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():

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

ตั้งค่า Google Cast Developer Console

หากต้องการใช้ฟีเจอร์ Intent การเข้าร่วม URI ของแอปและชื่อแพ็กเกจต้องเป็น เพิ่มเข้ามาใน Google Cast Developer Console

ผู้รับต้องอยู่ในรายชื่อและเผยแพร่ด้วยเพื่อให้ Intent ใช้งานได้ อย่างเหมาะสม

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

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

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

SessionManagerListener.onSessionStarted(T, String) จะปรากฏขึ้นและเข้าร่วมเซสชันนั้น

การยืนยัน

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