OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

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


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

סיכום

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

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

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

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

executor Executor: ה-Executor שבו צריך להפעיל את הקריאה החוזרת (callback). הערך הזה לא יכול להיות null. אירועי קריאה חוזרת ואירועי האזנה נשלחים באמצעות Executor, דרך קלה לקבוע איזה שרשור בשימוש. כדי לשלוח אירועים דרך ה-thread הראשי אפשר להשתמש 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 אם המחלקה של ה-handler לא נמצאה. הפונקציה מחזירה ערך OnDevicePersonalizationException אם הביצוע של ה-handler נכשל.

requestSurfacePackage

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

מבקש להוסיף SurfaceControlViewHost.SurfacePackage ל SurfaceView באפליקציית השיחות. חבילת הפלטפורמה תכיל 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 שבו תופעל הקריאה החוזרת הערך הזה לא יכול להיות null. אירועי קריאה חוזרת ואירועי האזנה נשלחים באמצעות Executor, דרך קלה לקבוע איזה שרשור בשימוש. כדי לשלוח אירועים דרך ה-thread הראשי אפשר להשתמש Context.getMainExecutor() אם לא, צריך לציין Executor ששולח לשרשור מתאים.

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