เครื่องมือจัดการการปรับเปลี่ยนอุปกรณ์ในแบบของคุณ
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)
เรียกใช้ |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
ขอให้แทรก |
วิธีการที่รับมา | |
---|---|
วิธีการสาธารณะ
ดำเนินการ
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.SurfacePackage, Exception> 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 |