การเรียกใช้แอปที่ทํางานอยู่เบื้องหน้า

การดำเนินการของแอปช่วยให้ผู้ใช้พูดคุยกับ Google Assistant และเข้าถึงสิ่งที่ต้องการได้โดยตรง ปลายทางของแอป เมื่อมีคนพูดว่า "Ok Google เรียกรถมาให้ฉันหน่อย แอปตัวอย่าง" เมื่อใช้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า คุณจะปรับปรุง เมื่อผู้ใช้เปิดแอปของคุณอยู่แล้ว

การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าช่วยให้จับคู่ Intent (BII) ในตัวได้โดยไม่ต้อง กำหนดให้ระบุชื่อแอปในขณะที่กิจกรรมที่เจาะจงอยู่ใน เบื้องหน้าของอุปกรณ์

เช่น ผู้ใช้มีแอปบริการร่วมเดินทางอยู่เบื้องหน้าและพูดหรือพิมพ์ว่า "สั่งรถไปเมาน์เทนวิวให้ฉัน" ไปที่ Google Assistant แอปของคุณใช้ข้อมูลนี้ เพื่อตั้งค่าช่องปลายทางเป็น Mountain View จากนั้น เมื่อผู้ใช้พูดหรือ ประเภท "เรียกรถจาก SFO ให้ฉัน" แอปของคุณตั้งค่าการรับสินค้าได้ ตำแหน่งในขณะที่คงสถานะของแอปไว้

ข้อจำกัด

การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้ได้กับ BII ต่อไปนี้เท่านั้น

เพื่อรับการรองรับภาษาและตัวอย่างการค้นหาที่เกี่ยวข้องกับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า สำหรับ BII ที่เฉพาะเจาะจง โปรดดูข้อมูลอ้างอิง Intent ในตัว

รองรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า

การเพิ่มการรองรับสำหรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าเกี่ยวข้องกับการเพิ่ม Fulfillment ตามกิจกรรมเบื้องหน้าที่ต้องการ เมื่อกิจกรรมนั้นอยู่ใน เบื้องหน้าและมีการเรียกใช้การดำเนินการของแอป Assistant จะส่ง Intent ของ Deep Link พร้อมแจ้งกิจกรรมดังกล่าวเพิ่มเติมเพื่อให้แอปอัปเดตสถานะได้

หากต้องการใช้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าสำหรับ BII ให้ทำดังนี้

  1. ในไฟล์ shortcuts.xml ให้เพิ่มแท็ก <intent> ลงใน BII <capability> คุณต้องการรองรับการเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า
  2. ในแท็ก <intent> ให้เพิ่มแท็ก <extra>
  3. ในแท็ก <extra> ให้ตั้งค่า android:key เป็น "requiredForegroundActivity" และตั้งค่า android:value เป็นกิจกรรมที่คุณต้องการให้เป็น ในเบื้องหน้า ระบุกิจกรรมที่ไม่มีชั้นเรียน ตัวย่อ โดยใช้ชื่อแพ็กเกจของแอป ตามด้วยเครื่องหมายทับ (/) ตามด้วยชื่อกิจกรรม: APP_PACKAGE_NAME/ACTIVITY_NAME
  4. ในกิจกรรมเบื้องหน้าที่คุณระบุสำหรับ "requiredForegroundActivity" ใช้เมธอด onNewIntent() เพื่อจัดการ Intent ที่เป็น Deep Link ด้วย ตั้งค่าแฟล็ก SINGLE_TOP แล้ว Assistant ส่ง Intent ของ Deep Link ด้วย ธงนี้ถือว่าเป็นการดำเนินการเมื่อกิจกรรมที่ระบุอยู่ในเบื้องหน้า
  5. ถือว่าการโทรไปยัง 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>

สิทธิ์ของผู้ใช้

ในการตั้งค่าอุปกรณ์ ผู้ใช้ต้องเปิดใช้ตัวเลือก &quot;ใช้ข้อความจากหน้าจอ&quot;
            เพื่อให้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้งานได้

หากต้องการให้การเรียกใช้แอปที่ทำงานอยู่เบื้องหน้าใช้งานได้ ผู้ใช้ต้องมีสิ่งต่อไปนี้ เปิดใช้การตั้งค่าอุปกรณ์ใช้ข้อความจากหน้าจอไว้ สถานที่และชื่อที่แน่นอน ของการตั้งค่านี้อาจแตกต่างกันไปตาม OEM หรือผู้ผลิตอุปกรณ์ ตัวอย่างเช่น พารามิเตอร์ การตั้งค่าอุปกรณ์อาจใช้ชื่อว่าใช้บริบทบนหน้าจอสำหรับผู้ใช้ อุปกรณ์

หากต้องการเข้าถึงการตั้งค่า Android นี้ในโทรศัพท์ Pixel ให้ไปที่การตั้งค่า > ก่อน แอปและ การแจ้งเตือน > แอปเริ่มต้น > แอปผู้ช่วย จากนั้น ในผู้ช่วยและเสียง หน้าจออินพุต ให้เปิดใช้ใช้ข้อความจากหน้าจอ

ทดสอบคำขอ

หากต้องการลองเรียกใช้แอปที่ทำงานอยู่เบื้องหน้า ให้ทำตามขั้นตอนต่อไปนี้

  1. ทำตามวิธีการในส่วนการให้สิทธิ์จากผู้ใช้เพื่อเปิดใช้ การตั้งค่าอุปกรณ์ใช้ข้อความจากหน้าจอ
  2. เปิดแอปเพื่อไปยังกิจกรรมที่ระบุว่าเป็นกิจกรรมที่ทำงานอยู่เบื้องหน้าที่จำเป็น
  3. กด & กดปุ่มหน้าแรกค้างไว้เพื่อเปิด 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 ไปยังธุรกิจ แทน