החל מ-Android 11, מקלדות ועורכי שיטות קלט (IME) אחרים יכולים להציג הצעות למילוי אוטומטי בשורה, ברצועת הצעות או במשהו דומה, במקום שהמערכת תציג הצעות בתפריט. ההצעות האלה להשלמה אוטומטית יכולות להכיל נתונים פרטיים, כמו סיסמאות או פרטי כרטיס אשראי, ולכן הן מוסתרות מ-IME עד שהמשתמש בוחר אחת מהן. כדי להשתמש בתכונה הזו, צריך לעדכן את שיטות הקלט ואת שירותי המילוי האוטומטי, כמו מנהלי סיסמאות. אם IME או שירות מילוי אוטומטי לא תומכים במילוי אוטומטי מוטבע, ההצעות מוצגות בתפריט, כמו בגרסאות קודמות ל-Android 11.
תהליך עבודה
בתהליך הזה, IME פירושו המקלדת הנוכחית או כלי אחר לעריכת קלט, וספק ההצעות פירושו הספק המתאים של הצעת המילוי האוטומטי. ספק ההצעות יכול להיות הפלטפורמה או שירות מילוי אוטומטי, בהתאם לשדה הקלט ולהגדרות המשתמש.
המשתמש מתמקד בשדה קלט שמפעיל מילוי אוטומטי, כמו שדה קלט של סיסמה או כרטיס אשראי.
הפלטפורמה שולחת שאילתה ל-IME הנוכחי ולספק ההצעות המתאים כדי לבדוק אם הם תומכים במילוי אוטומטי בשורה. אם ה-IME או ספק ההצעות לא תומכים במילוי אוטומטי מוטבע, ההצעה מוצגת בתפריט, כמו ב-Android 10 ובגרסאות קודמות.
הפלטפורמה מבקשת מ-IME לספק בקשה להצעה. בבקשה הזו להצגת הצעות מצוין המספר המקסימלי של ההצעות שיוצגו, וגם מפרטי ההצגה של כל הצעה. במפרט של המצגת מוגדרים פרטים כמו גודל מקסימלי, גודל טקסט, צבעים ונתוני גופן, כדי שספק ההצעות יוכל להתאים את המראה והתחושה של ה-IME.
הפלטפורמה מבקשת מספק ההצעות לספק עד מספר ההצעות המבוקש. כל הצעה כוללת קריאה חוזרת להרחבת
Viewשמכיל את ממשק המשתמש של ההצעה.הפלטפורמה מודיעה ל-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 שמכיל את ההצעות. חובה להטמיע את השיטה הזו. בהטמעה, קוראים ל-call
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() לתמיכה בהצעות מוטבעות.