เครื่องมือจัดการการปรับเปลี่ยนอุปกรณ์ในแบบของคุณ

public class OnDevicePersonalizationManager
extends Object

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


OnDevicePersonalizationManager มี API สำหรับแอปที่จะโหลด IsolatedService ในกระบวนการที่แยกต่างหากและโต้ตอบกับกระบวนการนั้น แอปสามารถขอให้IsolatedServiceสร้างเนื้อหาเพื่อแสดงเนื้อหาได้ ภายใน SurfaceView ภายในลำดับชั้นการแสดงผลของแอป และเขียน ผลลัพธ์อย่างต่อเนื่องของพื้นที่เก็บข้อมูลในอุปกรณ์ ซึ่ง Federated Analytics สามารถใช้ได้สำหรับ การวิเคราะห์สถิติข้ามอุปกรณ์หรือโดยการเรียนรู้แบบสมาพันธ์สำหรับการฝึกโมเดล แสดง แอปการโทรไม่สามารถเข้าถึงเนื้อหาและเอาต์พุตถาวรได้โดยตรง

สรุป

วิธีการสาธารณะ

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 ที่จะเรียกใช้ Callback ค่านี้ต้องไม่เป็น null ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้ 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 หากตัวแฮนเดิล ไม่ได้ติดตั้งแพ็กเกจ หรือไม่มีไฟล์ Manifest ODP ที่ถูกต้อง แสดงผล ClassNotFoundException หากไม่พบคลาสของเครื่องจัดการ แสดงผล OnDevicePersonalizationException หากการดำเนินการของตัวแฮนเดิลล้มเหลว

แพ็กเกจ requestSurface

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 ที่จะเรียกใช้ Callback ค่านี้ต้องไม่เป็น null ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านรายการนี้ Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่ ในการส่งกิจกรรมผ่านชุดข้อความหลักของ คุณสามารถใช้ Context.getMainExecutor() หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม

receiver OutcomeReceiver: แสดงค่า SurfaceControlViewHost.SurfacePackageเมื่อสำเร็จ หรือ Exception เมื่อล้มเหลว ประเภทของข้อยกเว้นคือ OnDevicePersonalizationException หากการดำเนินการของตัวแฮนเดิลล้มเหลว ค่านี้ต้องไม่เป็น null