OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

java.lang.Object
   ↳ android.adservices.ondevicepersonalization.OnDevicePersonalizationManager


OnDevicePersonalizationManager מספק ממשקי API לאפליקציות כדי לטעון IsolatedService בתהליך מבודד ולקיים איתו אינטראקציה. האפליקציה יכולה לבקש מ-IsolatedService ליצור תוכן לתצוגה בתוך SurfaceView בהיררכיית התצוגות של האפליקציה, וגם לכתוב תוצאות קבועות באחסון במכשיר, שאפשר להשתמש בהן על ידי Fedeated Analytics לצורך ניתוח סטטיסטי חוצה-מכשירים או באמצעות למידה משותפת לאימון מודלים. לאפליקציה המפעילה אין גישה ישירה לתוכן המוצג ולפלט הקבוע.

סיכום

שיטות ציבוריות

void execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

מפעיל IsolatedService בארגז החול של OnDeviceCustomize.

void requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

הבקשה להוספת SurfaceControlViewHost.SurfacePackage ל-SurfaceView באפליקציית השיחה.

שיטות שעברו בירושה

שיטות ציבוריות

ביצוע

public void execute (ComponentName handler, 
                PersistableBundle params, 
                Executor executor, 
                OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

הפעלת IsolatedService בארגז החול של OnDevicePersonalization. הפלטפורמה מקשרת אל IsolatedService שצוין בתהליך מבודד וקוראת ל-IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) עם הפרמטרים שסופקו על ידי מבצע הקריאה החוזרת. כשהפעלת IsolatedService מסתיימת, הפלטפורמה מחזירה למבצע הקריאה את האסימונים שמפנים לתוצאות מהשירות. לאחר מכן אפשר להשתמש באסימונים האלה כדי להציג תוצאות ב-SurfaceView באפליקציה שבה מתבצעת הקריאה.

פרמטרים
handler ComponentName: ה-ComponentName של ה-IsolatedService. הערך לא יכול להיות null.

params PersistableBundle: PersistableBundle שמועבר מאפליקציית השיחות אל IsolatedService. התוכן הצפוי של הפרמטר הזה מוגדר על ידי IsolatedService. הפלטפורמה לא מפענחת את הפרמטר הזה. הערך לא יכול להיות null.

executor Executor: ה-Executor שבו צריך להפעיל את הפונקציה הזו. הערך לא יכול להיות null. אירועי קריאה חוזרת ואירועי האזנה נשלחים דרך Executor הזה, כדי לאפשר לך לקבוע בקלות באיזה שרשור ייעשה שימוש. כדי לשלוח אירועים דרך השרשור הראשי של האפליקציה, אפשר להשתמש ב-Context.getMainExecutor(). אחרת, צריך לספק Executor שמפנה לשרשור המתאים.

receiver OutcomeReceiver: הפונקציה מחזירה רשימה של SurfacePackageToken אובייקטים, שכל אחד מהם הוא הפניה אטומה ל-RenderingConfig שהוחזר על ידי IsolatedService, או Exception במקרה של כשל. אפשר להשתמש באובייקטים SurfacePackageToken שמוחזרים בקריאה requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) הבאה כדי להציג את התוצאה בתצוגה. אפליקציית השיחות ו-IsolatedService צריכים להסכים לגבי הגודל הצפוי של הרשימה הזו. יכול להיות שהערך ברשימה שמוחזרת של האובייקטים SurfacePackageToken יהיה null, כדי לציין שלשירות אין פלט בפלטפורמה הספציפית הזו. במקרה של שגיאה, המקבל מחזיר אחת מחריגות הבאות: מחזירה PackageManager.NameNotFoundException אם חבילת ה-handler לא מותקנת או שאין לה מניפסט ODP חוקי. הפונקציה מחזירה את הערך ClassNotFoundException אם לא נמצאה כיתה הטיפול. הפונקציה מחזירה OnDevicePersonalizationException אם ההפעלה של הטיפול נכשל.

requestSurfacePackage

public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, 
                IBinder surfaceViewHostToken, 
                int displayId, 
                int width, 
                int height, 
                Executor executor, 
                OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

הבקשה להוספת SurfaceControlViewHost.SurfacePackage ל-SurfaceView באפליקציה מבצעת את הקריאה. חבילת ה-surface תכיל את View עם התוכן מתוצאה של קריאה קודמת ל-#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) שפועלת בארגז החול של OnDevicePersonalization.

פרמטרים
surfacePackageToken SurfacePackageToken: הפניה ל-SurfacePackageToken שהוחזר על ידי קריאה קודמת ל-#execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). הערך לא יכול להיות null.

surfaceViewHostToken IBinder: ה-hostToken של ה-SurfaceView, שמוחזר על ידי SurfaceView.getHostToken() אחרי ש-SurfaceView נוסף להיררכיית התצוגה. הערך לא יכול להיות null.

displayId int: המזהה של התצוגה הלוגי, שבה מוצג הערך של SurfaceControlViewHost.SurfacePackage, שמוחזר על ידי Context.getDisplay().getDisplayId().

width int: הרוחב של SurfaceControlViewHost.SurfacePackage בפיקסלים.

height int: הגובה של SurfaceControlViewHost.SurfacePackage בפיקסלים.

executor Executor: ה-Executor שבו צריך להפעיל את פונקציית ה-callback. הערך לא יכול להיות null. אירועי החזרה (callbacks) ואירועי הקשבים (listeners) מועברים דרך Executor הזה, ומאפשרים לכם לשלוט בקלות בשרשור שבו נעשה שימוש. כדי לשלוח אירועים דרך ה-thread הראשי של האפליקציה, אפשר להשתמש ב-Context.getMainExecutor(). אחרת, צריך לספק Executor שמפנה לשרשור המתאים.

receiver OutcomeReceiver: הפונקציה הזו מחזירה את הערך SurfaceControlViewHost.SurfacePackage אם הפעולה בוצעה בהצלחה, ואת הערך Exception אם הפעולה נכשלה. סוג החריגה הוא OnDevicePersonalizationException אם ביצוע הטיפול נכשל. הערך לא יכול להיות null.