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