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