ตั้งแต่ Android 11 เป็นต้นไป คีย์บอร์ดและโปรแกรมแก้ไขวิธีการป้อนข้อมูลอื่นๆ (IME) จะแสดงคำแนะนำในการป้อนข้อความอัตโนมัติแบบอินไลน์ ในแถบคำแนะนำ หรือ สิ่งที่คล้ายกันแทนที่ระบบจะแสดงคำแนะนำในเมนู เนื่องจากคำแนะนำในการป้อนข้อความอัตโนมัติเหล่านี้อาจมีข้อมูลส่วนตัว เช่น รหัสผ่านหรือข้อมูลบัตรเครดิต ระบบจึงซ่อนคำแนะนำจาก IME จนกว่าผู้ใช้จะเลือกคำแนะนำ อัปเดต IME และบริการป้อนข้อความอัตโนมัติ เช่น เครื่องมือจัดการรหัสผ่าน เพื่อ ใช้ฟีเจอร์นี้ หาก IME หรือบริการป้อนข้อความอัตโนมัติไม่รองรับการป้อนข้อความอัตโนมัติในบรรทัด ระบบจะแสดงคำแนะนำในเมนูเหมือนในเวอร์ชันก่อนหน้า Android 11
ขั้นตอนการทำงาน
ในโฟลว์นี้ IME หมายถึงแป้นพิมพ์ปัจจุบันหรือโปรแกรมแก้ไขอินพุตอื่นๆ และ ผู้ให้บริการคำแนะนำ หมายถึงผู้ให้บริการที่เหมาะสมของคำแนะนำการป้อนข้อความอัตโนมัติ ผู้ให้บริการคำแนะนำอาจเป็นแพลตฟอร์มหรือบริการป้อนข้อความอัตโนมัติ ทั้งนี้ขึ้นอยู่กับช่องป้อนข้อมูลและการตั้งค่าของผู้ใช้
ผู้ใช้โฟกัสที่ช่องป้อนข้อมูลที่ทริกเกอร์การป้อนข้อความอัตโนมัติ เช่น ช่องป้อนรหัสผ่านหรือ ช่องป้อนบัตรเครดิต
แพลตฟอร์มจะค้นหา IME ปัจจุบันและผู้ให้บริการคำแนะนำที่เหมาะสม เพื่อดูว่ารองรับการป้อนข้อความอัตโนมัติในบรรทัดหรือไม่ หาก IME หรือผู้ให้บริการคำแนะนำไม่รองรับการป้อนข้อความอัตโนมัติในบรรทัด คำแนะนำจะแสดงในเมนูเหมือนใน Android 10 และเวอร์ชันที่ต่ำกว่า
แพลตฟอร์มจะขอให้ IME ระบุคำขอคำแนะนำ คำขอคำแนะนำนี้จะระบุจำนวนคำแนะนำสูงสุดที่จะแสดง และยังระบุข้อกำหนดในการนำเสนอสำหรับคำแนะนำแต่ละรายการด้วย ข้อกำหนดของงานนำเสนอ จะระบุสิ่งต่างๆ เช่น ขนาดสูงสุด ขนาดข้อความ สี และข้อมูลแบบอักษร ซึ่งช่วยให้ ผู้ให้บริการคำแนะนำสามารถจับคู่รูปลักษณ์และความรู้สึกของ IME ได้
แพลตฟอร์มจะขอให้ผู้ให้บริการคำแนะนำแสดงคำแนะนำตามจำนวนที่ขอ คำแนะนำแต่ละรายการจะมีฟังก์ชันเรียกกลับเพื่อขยาย
View
ที่มี UI ของคำแนะนำแพลตฟอร์มจะแจ้งให้ IME ทราบว่าคำแนะนำพร้อมใช้งานแล้ว IME จะแสดง คำแนะนำโดยเรียกใช้เมธอดเรียกกลับเพื่อขยาย
View
ของคำแนะนำแต่ละรายการ IME จะไม่เห็นคำแนะนำในขั้นตอนนี้เพื่อปกป้องข้อมูลส่วนตัวของผู้ใช้หากผู้ใช้เลือกคำแนะนำ ระบบจะแจ้งให้ 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 ต้องการ
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 อย่างไรก็ตาม บริการของคุณต้องเรียกใช้เมธอด getInlineSuggestionsRequest()
ของออบเจ็กต์ FillRequest
ที่ส่งผ่านเพื่อรับ InlineSuggestionsRequest
ที่สร้างโดย IME
InlineSuggestionsRequest
ระบุจำนวนคำแนะนำในบรรทัดที่จำเป็นและ
วิธีนำเสนอคำแนะนำแต่ละรายการ หาก IME ไม่รองรับคำแนะนำในบรรทัด
เมธอดจะแสดง null
บริการป้อนข้อความอัตโนมัติจะสร้างออบเจ็กต์
InlinePresentation
โดยมีจำนวนสูงสุดตามที่ขอใน InlineSuggestionsRequest
งานนำเสนอต้องเป็นไปตามข้อจำกัดด้านขนาดที่ระบุโดย
InlineSuggestionsRequest
หากต้องการส่งคำแนะนำกลับไปยัง IME ให้เรียกใช้
Dataset.Builder.setValue()
หนึ่งครั้งสำหรับคำแนะนำแต่ละรายการ Android 11 มีเวอร์ชันของ
Dataset.Builder.setValue()
เพื่อรองรับคำแนะนำในบรรทัด