مدير تخصيص الجهاز على الجهاز

public class OnDevicePersonalizationManager
extends Object

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


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

ملخّص

الطرق المتاحة للجميع

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 داخل تطبيق الاتصال.

الطرق المكتسبة

الطرق المتاحة للجميع

الأمر execute

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 إذا تعذّر تنفيذ المعالج.

طلب SurfacePackage

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.