"ความตั้งใจที่จะเข้าร่วม" เป็นฟีเจอร์ใหม่ของผู้ส่ง 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) } ... }
@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) ได้ดังนี้
- ติดตั้งแอป Google Home ในโทรศัพท์ Android แล้วเชื่อมต่อ Wi-Fi ในโทรศัพท์
- อุปกรณ์ที่พร้อมใช้งาน Cast จะตั้งค่าอุปกรณ์ Google Home ภายใต้เครือข่ายเดียวกัน
- เริ่มเซสชันการแคสต์ด้วยอุปกรณ์ Google Home โดยใช้ Command and Control (CaC) Tool, อุปกรณ์ Android หรือ iOS เครื่องอื่น หรือใช้เสียงและตรวจสอบว่ามีการเปิดแอป Web Receiver ไว้หรือไม่
- รอสักครู่เพื่อรับ RCN ในโทรศัพท์และแตะการแจ้งเตือนเพื่อทริกเกอร์ Intent ควรประกาศ Intent ไปยังทุกแอปที่ลงทะเบียน Intent กับข้อมูลที่จำเป็นในการเข้าร่วมเซสชัน
SessionManagerListener.onSessionStarted(T, String)
จะทริกเกอร์และเข้าร่วมเซสชัน
การยืนยัน
หากแอปเข้าร่วมเซสชันสำเร็จ ระบบจะเรียก SessionManagerListener.onSessionStarted(T, String)
มิเช่นนั้นระบบจะเรียก SessionManagerListener.onSessionStartFailed(T, int)
สมมติว่าแอปของคุณจัดการเหตุการณ์เหล่านั้นได้อย่างถูกต้องแล้ว (เช่น การเปิดตัวตัวควบคุมที่ขยายหรือตัวควบคุมขนาดเล็ก) คุณก็ไม่ต้องดำเนินการใดๆ เพิ่มเติม