OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager มี API สําหรับแอปในการโหลด IsolatedService
ในกระบวนการแยกต่างหากและโต้ตอบกับ IsolatedService
แอปสามารถขอ IsolatedService
เพื่อสร้างเนื้อหาเพื่อแสดงภายใน SurfaceView
ภายในลําดับชั้นมุมมองของแอป และเขียนผลลัพธ์ถาวรลงในพื้นที่เก็บข้อมูลในอุปกรณ์ ซึ่ง Federated Analytics สามารถใช้สําหรับการวิเคราะห์ทางสถิติข้ามอุปกรณ์ หรือ Federated Learning สามารถใช้สําหรับการฝึกโมเดลได้ แอปการโทรไม่สามารถเข้าถึงเนื้อหาที่แสดงและเอาต์พุตถาวรได้โดยตรง
สรุป
เมธอดสาธารณะ | |
---|---|
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 ที่แสดงผลอาจเป็น Null เพื่อบ่งบอกว่าบริการไม่มีเอาต์พุตสำหรับแพลตฟอร์มนั้นๆ
ในกรณีที่เกิดข้อผิดพลาด ผู้รับจะแสดงข้อยกเว้นอย่างใดอย่างหนึ่งต่อไปนี้
โดยจะแสดงค่า 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 ที่จะเรียกใช้การเรียกกลับ
ค่านี้ต้องไม่ใช่ null
ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่าน Executor นี้ ซึ่งช่วยให้ควบคุมได้ง่ายว่าจะใช้เธรดใด หากต้องการส่งเหตุการณ์ผ่านเธรดหลักของแอปพลิเคชัน ให้ใช้ Context.getMainExecutor()
หรือระบุ Executor ที่ส่งไปยังเธรดที่เหมาะสม |
receiver |
OutcomeReceiver : ส่งคืน SurfaceControlViewHost.SurfacePackage เมื่อสำเร็จ หรือ Exception เมื่อล้มเหลว ประเภทข้อยกเว้นคือ
OnDevicePersonalizationException หากการเรียกใช้ตัวแฮนเดิลไม่สำเร็จ
ค่านี้ต้องไม่เป็น null |