OnDevicePersonalizationManager

public class OnDevicePersonalizationManager
extends Object

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


يوفّر OnDevicePersonalizationManager واجهات برمجة تطبيقات للتطبيقات لتحميل IsolatedService في عملية معزولة والتفاعل معها. يمكن للتطبيق طلب IsolatedService لإنشاء محتوى لعرضه ضمن SurfaceView ضمن التسلسل الهرمي لعرض التطبيق، وكتابة النتائج الثابتة أيضًا في مساحة التخزين على الجهاز والتي يمكن أن تستخدمها "الإحصاءات الموحّدة" لتحليل IsolatedService الإحصائي على جميع الأجهزة أو "التعلم الموحّد" لتدريب النماذج. لا يمكن للتطبيق المُرسِل الوصول مباشرةً إلى المحتوى المعروض والإخراج الدائم.

ملخّص

الطرق العامة

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

تنفيذ IsolatedService في بيئة OnDevicePersonalization الاختبارية

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 فارغًا للإشارة إلى أنّ الخدمة لا تتضمّن أي نتائج لهذا السطح المحدّد. في حال حدوث خطأ، يعرض المستلِم أحد الاستثناءات التالية: يعرض PackageManager.NameNotFoundException إذا لم يتم تثبيت حِزمة المعالج أو لم يكن لديها بيان 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 داخل تطبيق الاتصال. ستتضمّن حزمة العرض View يتضمّن المحتوى من نتيجة طلب سابق إلى #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) قيد التشغيل في مساحة وضع الحماية OnDevicePersonalization.

المعلمات
surfacePackageToken SurfacePackageToken: إشارة إلى SurfacePackageToken تم إرجاعها من خلال طلب سابق إلى #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). لا يمكن أن تكون هذه القيمة null.

surfaceViewHostToken IBinder: رمز مضيف 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 هذا، ما يوفّر طريقة سهلة للتحكّم في سلسلة المحادثات التي يتم استخدامها. لإرسال الأحداث من خلال سلسلة التعليمات الرئيسية لتطبيقك، يمكنك استخدام Context.getMainExecutor(). وبخلاف ذلك، يُرجى توفير Executor يتم إرسالها إلى سلسلة محادثات مناسبة.

receiver OutcomeReceiver: إما يتم عرض SurfaceControlViewHost.SurfacePackage عند نجاح العملية أو Exception عند التعذُّر. يكون نوع الاستثناء هو OnDevicePersonalizationException في حال تعذّر تنفيذ المعالج. لا يمكن أن تكون هذه القيمة null.