החל מ-Android 11, מקלדות ועריכות אחרות של שיטות קלט (IME) יכולות להציג הצעות למילוי אוטומטי בשורה, בסרגל הצעות או באופן דומה, במקום שהמערכת תציג הצעות בתפריט. מכיוון שההצעות האלה למילוי אוטומטי יכולות להכיל מידע פרטי, כמו סיסמאות או פרטי כרטיס אשראי, ההצעות מוסתרות מ-IME עד שהמשתמש בוחר אחת מהן. לעדכן IME ושירותי מילוי אוטומטי, כגון מנהלי סיסמאות, להשתמש בתכונה הזאת. אם IME או שירות מילוי אוטומטי לא תומכים בגוף ההודעה במילוי האוטומטי, ההצעות מוצגות בתפריט כמו בגרסאות שקודמות ל- Android 11.
זרימת עבודה
בתהליך הזה, IME הוא המקלדת הנוכחית או עורך קלט אחר, וספק ההצעות הוא הספק המתאים של ההצעה למילוי אוטומטי. בהתאם לשדה הקלט ולהגדרות של המשתמש, ספק ההצעות יכול להיות הפלטפורמה או שירות מילוי אוטומטי.
המשתמש מתמקד בשדה להזנת קלט שמפעיל מילוי אוטומטי, כמו סיסמה או שדה להזנת קלט כרטיס אשראי.
הפלטפורמה שולחת שאילתה ל-IME הנוכחי ולספק ההצעות המתאים כדי לבדוק אם הם תומכים במילוי אוטומטי בשורת הטקסט. אם ה-IME או ה- ספק ההצעות לא תומך במילוי אוטומטי מוטבע, ההצעה מוצגת בתפריט, למשל ב-Android 10 ובגרסאות קודמות.
הפלטפורמה מבקשת מה-IME לספק בקשת הצעה. ההצעה הזו הבקשה מציינת את המספר המקסימלי של הצעות שיוצגו, וגם מספק מפרטי מצגת לכל הצעה. מפרט המצגת לציין פרטים כמו גודל מקסימלי, גודל טקסט, צבעים ונתוני גופן, ספק ההצעות תואם למראה ולתחושה של ה-IME.
הפלטפורמה מבקשת מספק ההצעות לספק עד מספר ההצעות. כל הצעה כוללת קריאה חוזרת (callback) כדי להגדיל
View
שמכיל את ממשק המשתמש של ההצעה.הפלטפורמה מעדכנת את ה-IME שההצעות מוכנות. ה-IME מציג על ידי קריאה לשיטת הקריאה החוזרת כדי להגדיל את
View
כדי להגן על המידע הפרטי של המשתמש, לא מוצגות להצעות בשלב הזה.אם המשתמש בוחר באחת מההצעות, ה-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. אבל,
השירות חייב לקרוא לאובייקט FillRequest
שהועבר
getInlineSuggestionsRequest()
כדי לקבל את InlineSuggestionsRequest
שנוצר על ידי ה-IME. השדה InlineSuggestionsRequest
מציין כמה הצעות צריך להציג בשורה אחת ואיך צריך להציג כל אחת מהן. אם ה-IME לא תומך בהצעות בשורה, השיטה מחזירה את הערך null
.
שירות המילוי האוטומטי יוצר
InlinePresentation
אובייקטים, עד למספר המקסימלי המבוקש בInlineSuggestionsRequest
.
המצגות צריכות לעמוד באילוצי הגודל שצוינו ב-InlineSuggestionsRequest
. כדי להחזיר את ההצעות ל-IME, התקשרו
Dataset.Builder.setValue()
פעם אחת לכל הצעה. ב-Android 11 יש גרסאות של Dataset.Builder.setValue()
שתומכות בהצעות בשורת הטקסט.