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 در جعبه ایمنی OnDevicePersonalization اجرا می کند.

void requestSurfacePackage ( SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver < SurfaceControlViewHost.SurfacePackage , Exception > 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 ممکن است تهی باشد تا نشان دهد که سرویس هیچ خروجی برای آن سطح خاص ندارد. در صورت بروز خطا، گیرنده یکی از استثناهای زیر را برمی گرداند: اگر بسته کنترل کننده نصب نشده باشد یا مانیفست ODP معتبر نداشته باشد، PackageManager.NameNotFoundException را برمی گرداند. اگر کلاس handler پیدا نشود، 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 : hostToken SurfaceView که پس از اضافه شدن SurfaceView به سلسله مراتب view توسط SurfaceView.getHostToken() برگردانده می شود. این مقدار نمی تواند 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 باشد.