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

public class OnDevicePersonalizationManager
extends Object

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


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

ملخّص

الطرق العامة

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

طلب 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.