ตั้งแต่ 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() เวอร์ชันต่างๆ เพื่อรองรับคำแนะนำในบรรทัด