การดำเนินการของแอปช่วยให้ผู้ใช้พูดคุยกับ Google Assistant และเข้าถึงสิ่งที่ต้องการได้โดยตรง ปลายทางของแอป เมื่อมีคนพูดว่า "Ok Google เรียกรถมาให้ฉันหน่อย แอปตัวอย่าง" เมื่อใช้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า คุณจะปรับปรุง เมื่อผู้ใช้เปิดแอปของคุณอยู่แล้ว
การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าช่วยให้จับคู่ Intent (BII) ในตัวได้โดยไม่ต้อง กำหนดให้ระบุชื่อแอปในขณะที่กิจกรรมที่เจาะจงอยู่ใน เบื้องหน้าของอุปกรณ์
เช่น ผู้ใช้มีแอปบริการร่วมเดินทางอยู่เบื้องหน้าและพูดหรือพิมพ์ว่า "สั่งรถไปเมาน์เทนวิวให้ฉัน" ไปที่ Google Assistant แอปของคุณใช้ข้อมูลนี้ เพื่อตั้งค่าช่องปลายทางเป็น Mountain View จากนั้น เมื่อผู้ใช้พูดหรือ ประเภท "เรียกรถจาก SFO ให้ฉัน" แอปของคุณตั้งค่าการรับสินค้าได้ ตำแหน่งในขณะที่คงสถานะของแอปไว้
ข้อจำกัด
การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้ได้กับ BII ต่อไปนี้เท่านั้น
actions.intent.CREATE_MONEY_TRANSFER
actions.intent.CREATE_TAXI_RESERVATION
actions.intent.OPEN_APP_FEATURE
actions.intent.ORDER_MENU_ITEM
actions.intent.PAUSE_EXERCISE
actions.intent.RECORD_EXERCISE
actions.intent.RECORD_FOOD_OBSERVATION
actions.intent.RESUME_EXERCISE
actions.intent.START_EXERCISE
actions.intent.STOP_EXERCISE
เพื่อรับการรองรับภาษาและตัวอย่างการค้นหาที่เกี่ยวข้องกับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า สำหรับ BII ที่เฉพาะเจาะจง โปรดดูข้อมูลอ้างอิง Intent ในตัว
รองรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า
การเพิ่มการรองรับสำหรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าเกี่ยวข้องกับการเพิ่ม Fulfillment ตามกิจกรรมเบื้องหน้าที่ต้องการ เมื่อกิจกรรมนั้นอยู่ใน เบื้องหน้าและมีการเรียกใช้การดำเนินการของแอป Assistant จะส่ง Intent ของ Deep Link พร้อมแจ้งกิจกรรมดังกล่าวเพิ่มเติมเพื่อให้แอปอัปเดตสถานะได้
หากต้องการใช้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าสำหรับ BII ให้ทำดังนี้
- ในไฟล์
shortcuts.xml
ให้เพิ่มแท็ก<intent>
ลงใน BII<capability>
คุณต้องการรองรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า - ในแท็ก
<intent>
ให้เพิ่มแท็ก<extra>
- ในแท็ก
<extra>
ให้ตั้งค่าandroid:key
เป็น"requiredForegroundActivity"
และตั้งค่าandroid:value
เป็นกิจกรรมที่คุณต้องการให้เป็น ในเบื้องหน้า ระบุกิจกรรมที่ไม่มีชั้นเรียน ตัวย่อ โดยใช้ชื่อแพ็กเกจของแอป ตามด้วยเครื่องหมายทับ (/) ตามด้วยชื่อกิจกรรม:APP_PACKAGE_NAME/ACTIVITY_NAME
- ในกิจกรรมเบื้องหน้าที่คุณระบุสำหรับ
"requiredForegroundActivity"
ใช้เมธอดonNewIntent()
เพื่อจัดการ Intent ที่เป็น Deep Link ด้วย ตั้งค่าแฟล็กSINGLE_TOP
แล้ว Assistant ส่ง Intent ของ Deep Link ด้วย ธงนี้ถือว่าเป็นการดำเนินการเมื่อกิจกรรมที่ระบุอยู่ในเบื้องหน้า - ถือว่าการโทรไปยัง
onNewIntent()
เป็นการอัปเดตกิจกรรมเบื้องหน้า และ จัดการสถานะในกิจกรรมดังกล่าวโดยใช้พารามิเตอร์ที่ดึงมาจาก Deep Link
หากแอปของคุณใช้กิจกรรมของเราเตอร์เพื่ออนุญาตให้ Deep Link ภายนอกทั้งหมดทริกเกอร์ กิจกรรมของเราเตอร์ Single gatekeeping โปรดดู จัดการกิจกรรมของเราเตอร์
ตัวอย่าง
ข้อมูลโค้ดต่อไปนี้จากไฟล์ตัวอย่าง shortcuts.xml
แสดงวิธีเพิ่ม
แอตทริบิวต์ requiredForegroundActivity
:
<capability name="actions.intent.CREATE_TAXI_RESERVATION"> <!-- Trigger with foreground app invocation if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> <extra android:key="requiredForegroundActivity" android:value="com.example.app/com.example.app.MainActivity" /> </intent> <!-- This won't trigger if MainActivity is in the foreground. --> <intent android:targetClass="com.example.app.MainActivity" android:targetPackage="com.example.app"> <parameter android:name="taxiReservation.dropoffLocation.name" android:key="dropoff" /> </intent> </capability>
สิทธิ์ของผู้ใช้
![ในการตั้งค่าอุปกรณ์ ผู้ใช้ต้องเปิดใช้ตัวเลือก "ใช้ข้อความจากหน้าจอ"
เพื่อให้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้งานได้](https://developer.android.com/static/guide/app-actions/images/device-setting-assist-screen.png?authuser=4&hl=th)
หากต้องการให้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้งานได้ ผู้ใช้ต้องมีสิ่งต่อไปนี้ เปิดใช้การตั้งค่าอุปกรณ์ใช้ข้อความจากหน้าจอไว้ สถานที่และชื่อที่แน่นอน ของการตั้งค่านี้อาจแตกต่างกันไปตาม OEM หรือผู้ผลิตอุปกรณ์ ตัวอย่างเช่น พารามิเตอร์ การตั้งค่าอุปกรณ์อาจใช้ชื่อว่าใช้บริบทบนหน้าจอสำหรับผู้ใช้ อุปกรณ์
หากต้องการเข้าถึงการตั้งค่า Android นี้ในโทรศัพท์ Pixel ให้ไปที่การตั้งค่า > ก่อน แอปและ การแจ้งเตือน > แอปเริ่มต้น > แอปผู้ช่วย จากนั้น ในผู้ช่วยและเสียง หน้าจออินพุต ให้เปิดใช้ใช้ข้อความจากหน้าจอ
ทดสอบคำขอ
หากต้องการลองเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า ให้ทำตามขั้นตอนต่อไปนี้
- ทำตามวิธีการในส่วนการให้สิทธิ์จากผู้ใช้เพื่อเปิดใช้ การตั้งค่าอุปกรณ์ใช้ข้อความจากหน้าจอ
- เปิดแอปเพื่อไปยังกิจกรรมที่ระบุว่าเป็นกิจกรรมที่ทำงานอยู่เบื้องหน้าที่จำเป็น
- กด & กดปุ่มหน้าแรกค้างไว้เพื่อเปิด Assistant เป็นการวางซ้อนบนปุ่มปัจจุบัน แอป ระบุคำค้นหาที่สอดคล้องกับ BII ที่คุณใช้ โดยไม่กล่าวถึงชื่อแอป เมื่ออัปเดตสำเร็จ แอปของคุณจะอัปเดต ตามข้อความค้นหาของคุณขณะที่รักษาสถานะไว้โดยไม่ต้องรีสตาร์ท กิจกรรมนั้น
จัดการกิจกรรมของเราเตอร์
แอปบางแอปจัดการ Deep Link ภายนอกทั้งหมดโดยใช้เราเตอร์แบบไร้การป้องกันรายการเดียว กิจกรรม จากนั้นกิจกรรมของเราเตอร์จะเริ่มต้นตรรกะทางธุรกิจที่เหมาะสม กิจกรรม (หลังจากการตรวจสอบความถูกต้อง) และแสดงผลตรรกะทางธุรกิจ กิจกรรมเบื้องหน้า
การทริกเกอร์ Deep Link อาจทำให้ระบบเพิ่มกิจกรรมของเราเตอร์ไว้ที่ด้านบนของ กลุ่มงานเหนือกิจกรรมเบื้องหน้า สำหรับแอปที่ใช้เราเตอร์ คุณต้องตรวจสอบว่ากิจกรรมของเราเตอร์ส่ง Intent ที่ส่ง Google Assistant ไปยังอินสแตนซ์กิจกรรมที่ทำงานอยู่เบื้องหน้าปัจจุบัน วิธีที่คุณได้รับ ข้อกำหนดนี้จะขึ้นอยู่กับตำแหน่งที่กิจกรรมบนเราเตอร์ของคุณเริ่มต้น
หากเราเตอร์เริ่มต้นในสแต็กงานเดียวกันกับกิจกรรมตรรกะทางธุรกิจ
ส่งต่อ Intent โดยใช้ Bitwise OR ของ SINGLE_TOP
, CLEAR_TOP
และ NEW_TASK
:
Kotlin
Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
Java
Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
หากเราเตอร์เริ่มต้นในชุดงานที่แยกต่างหากจากตรรกะทางธุรกิจ
ให้ส่งต่อ Intent ด้วยธง SINGLE_TOP
ไปยังธุรกิจ
แทน