ผสานรวมการป้อนข้อความอัตโนมัติด้วย IME และบริการป้อนข้อความอัตโนมัติ

แป้นพิมพ์และเครื่องมือแก้ไขวิธีการป้อนข้อมูลอื่นๆ เริ่มตั้งแต่ Android 11 (IME) สามารถแสดงคำแนะนำการป้อนข้อความอัตโนมัติในบรรทัด ในแถบคำแนะนำ หรือ บางอย่างที่คล้ายกันแทนที่ระบบจะแสดงคำแนะนำในเมนู ตั้งแต่ปี คำแนะนำการป้อนข้อความอัตโนมัติเหล่านี้อาจมีข้อมูลส่วนตัว เช่น รหัสผ่านหรือ ข้อมูลบัตรเครดิต คำแนะนำจะถูกซ่อนจาก IME จนกว่าผู้ใช้ เลือกหนึ่งรายการ อัปเดต IME และบริการป้อนข้อความอัตโนมัติ เช่น เครื่องมือจัดการรหัสผ่าน เพื่อ ใช้ฟีเจอร์นี้เลย หาก IME หรือบริการป้อนข้อความอัตโนมัติไม่รองรับการป้อนข้อความอัตโนมัติในบรรทัด คำแนะนำจะแสดงในเมนู เช่นเดียวกับในเวอร์ชันที่เก่ากว่า Android 11

ขั้นตอนการทำงาน

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

  1. ผู้ใช้โฟกัสที่ช่องป้อนข้อมูลที่ทริกเกอร์การป้อนข้อความอัตโนมัติ เช่น รหัสผ่าน หรือ ฟิลด์ป้อนข้อมูลบัตรเครดิต

  2. แพลตฟอร์มจะค้นหา IME ปัจจุบันและผู้ให้บริการคำแนะนำที่เหมาะสมเพื่อดูว่ารองรับการเติมข้อความอัตโนมัติในบรรทัดหรือไม่ หาก IME หรือผู้ให้บริการคำแนะนำไม่รองรับการเติมข้อความอัตโนมัติในบรรทัด คำแนะนำจะแสดงในเมนู เช่นเดียวกับใน Android 10 และต่ำกว่า

  3. แพลตฟอร์มจะขอให้ IME ส่งคำขอคำแนะนำ คำแนะนำนี้ ระบุจำนวนคำแนะนำสูงสุดที่จะแสดง และ ให้ข้อกำหนดของงานนำเสนอสำหรับคำแนะนำแต่ละข้อ ข้อกําหนดของงานนำเสนอ ระบุสิ่งต่างๆ เช่น ขนาดสูงสุด ขนาดข้อความ สี และข้อมูลแบบอักษร ผู้ให้บริการคำแนะนำนั้นตรงกับรูปลักษณ์ของ IME

  4. แพลตฟอร์มจะขอให้ผู้ให้บริการคำแนะนำระบุจำนวนคำแนะนำตามคำขอ คำแนะนำแต่ละรายการมีการเรียกกลับเพื่อขยายViewที่มี UI ของคำแนะนำ

  5. แพลตฟอร์มจะแจ้งให้ IME ทราบว่าคําแนะนําพร้อมใช้งานแล้ว IME จะแสดงคำแนะนำโดยการเรียกใช้เมธอดการเรียกกลับเพื่อขยายView ของคำแนะนำแต่ละรายการ IME จะไม่เห็นคำแนะนำในขั้นตอนนี้เพื่อปกป้องข้อมูลส่วนตัวของผู้ใช้

  6. หากผู้ใช้เลือกคําแนะนํารายการใดรายการหนึ่ง ระบบจะแจ้งให้ IME ทราบในลักษณะเดียวกับที่ผู้ใช้เลือกคําแนะนําจากเมนูของระบบ

ส่วนต่อไปนี้อธิบายวิธีกำหนดค่า IME หรือบริการป้อนข้อความอัตโนมัติเพื่อรองรับการป้อนข้อความอัตโนมัติในบรรทัด

กำหนดค่า IME ให้รองรับการป้อนข้อความอัตโนมัติในบรรทัด

ส่วนนี้จะอธิบายวิธีกำหนดค่า IME ให้รองรับการป้อนข้อความอัตโนมัติในบรรทัด หาก IME ไม่รองรับการป้อนข้อความอัตโนมัติในบรรทัด แพลตฟอร์มจะแสดงคำแนะนำการป้อนข้อความอัตโนมัติในเมนูโดยค่าเริ่มต้น

IME ต้องตั้งค่าแอตทริบิวต์ supportsInlinedSuggestions เป็น true

<input-method
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

เมื่อแพลตฟอร์มต้องการคำแนะนำการป้อนข้อความอัตโนมัติ ระบบจะเรียกใช้เมธอด InputMethodService.onCreateInlineSuggestionsRequest() ของ IME คุณต้องติดตั้งใช้งานวิธีการนี้ แสดงผล InlineSuggestionsRequest โดยระบุข้อมูลต่อไปนี้

  • จำนวนคำแนะนำที่ IME ต้องการ
  • CANNOT TRANSLATE InlinePresentationSpec สำหรับแต่ละคำแนะนำ โดยระบุว่าจะต้องนำเสนอคำแนะนำอย่างไร

เมื่อแพลตฟอร์มมีคำแนะนำ ระบบจะเรียกใช้เมธอด onInlineSuggestionsResponse() ของ IME โดยส่ง InlineSuggestionsResponse ที่มีคำแนะนำ คุณต้องใช้วิธีนี้ ในการนำไปใช้งาน ให้เรียกใช้ InlineSuggestionsResponse.getInlineSuggestions() เพื่อดูรายการคำแนะนำ จากนั้นขยายคำแนะนำแต่ละรายการโดยเรียกใช้เมธอด InlineSuggestion.inflate()

กำหนดค่าบริการป้อนข้อความอัตโนมัติเพื่อรองรับการป้อนข้อความอัตโนมัติในบรรทัด

ส่วนนี้จะอธิบายวิธีกำหนดค่าบริการป้อนข้อความอัตโนมัติให้รองรับการป้อนข้อความอัตโนมัติในบรรทัด หากแอปไม่รองรับการป้อนข้อความอัตโนมัติในบรรทัด แพลตฟอร์มจะแสดงคำแนะนำการป้อนข้อความอัตโนมัติในเมนูโดยค่าเริ่มต้น

บริการป้อนข้อความอัตโนมัติต้องตั้งค่าแอตทริบิวต์ supportsInlinedSuggestions เป็น true

<autofill-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:supportsInlineSuggestions="true"/>

เมื่อ IME ต้องการคำแนะนำในการป้อนข้อความอัตโนมัติ แพลตฟอร์มจะเรียกใช้การป้อนข้อความอัตโนมัติ ของบริการ onFillRequest() เช่นเดียวกับที่ทำในเวอร์ชันที่ต่ำกว่า Android 11 อย่างไรก็ตาม บริการต้องเรียกออบเจ็กต์ FillRequest ที่ส่งผ่าน getInlineSuggestionsRequest() เพื่อให้ระบบสร้าง InlineSuggestionsRequest โดย IME InlineSuggestionsRequest จะระบุจํานวนคําแนะนําในบรรทัดและคําแนะนําแต่ละรายการต้องแสดงอย่างไร หาก IME ไม่รองรับการแนะนำแบบแทรกในบรรทัด เมธอดจะแสดงผลเป็น null

บริการป้อนข้อความอัตโนมัติจะสร้าง InlinePresentation ถึงจำนวนสูงสุดที่ขอใน InlineSuggestionsRequest งานนำเสนอของคุณต้องเป็นไปตามข้อจำกัดด้านขนาดที่ระบุโดย InlineSuggestionsRequest หากต้องการส่งคำแนะนำกลับไปเป็น IME โปรดเรียกใช้ Dataset.Builder.setValue() 1 ครั้งต่อ 1 คำแนะนำ Android 11 มี Dataset.Builder.setValue() เวอร์ชันต่างๆ ที่รองรับคำแนะนำในบทสนทนา