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