OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager cung cấp API để các ứng dụng tải một IsolatedService
trong một quy trình tách biệt và tương tác với quy trình đó.
Ứng dụng có thể yêu cầu IsolatedService
tạo nội dung để hiển thị trong SurfaceView
trong hệ phân cấp chế độ xem của ứng dụng, đồng thời ghi kết quả ổn định vào bộ nhớ trên thiết bị. Kết quả này có thể được Phân tích liên kết sử dụng để phân tích số liệu thống kê trên nhiều thiết bị hoặc Học liên kết sử dụng để huấn luyện mô hình. Ứng dụng gọi không thể truy cập trực tiếp nội dung hiển thị và dữ liệu đầu ra cố định.
Tóm tắt
Phương thức công khai | |
---|---|
void
|
execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Thực thi |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Yêu cầu chèn |
Các phương thức kế thừa | |
---|---|
Phương thức công khai
thực hiện
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
Thực thi IsolatedService
trong hộp cát OnDevicePersonalization. Nền tảng liên kết với IsolatedService
đã chỉ định trong một quy trình riêng biệt và gọi IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
bằng các tham số do phương thức gọi cung cấp. Khi IsolatedService
hoàn tất quá trình thực thi, nền tảng sẽ trả về các mã thông báo tham chiếu đến kết quả của dịch vụ cho phương thức gọi.
Sau đó, bạn có thể dùng những mã thông báo này để hiện kết quả trong SurfaceView
bên trong ứng dụng gọi.
Tham số | |
---|---|
handler |
ComponentName : ComponentName của IsolatedService .
Giá trị này không được là null . |
params |
PersistableBundle : PersistableBundle được truyền từ ứng dụng gọi đến IsolatedService . Nội dung dự kiến của tham số này do IsolatedService xác định. Nền tảng không diễn giải thông số này.
Giá trị này không được là null . |
executor |
Executor : Executor để gọi lệnh gọi lại.
Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi đi thông qua
Executor này, giúp bạn dễ dàng kiểm soát chuỗi nào được sử dụng. Để gửi thông báo các sự kiện thông qua chuỗi chính trong ứng dụng, bạn có thể sử dụng Context.getMainExecutor() .
Nếu không, hãy cung cấp một Executor điều phối đến một luồng thích hợp. |
receiver |
OutcomeReceiver : Hàm này trả về một danh sách các đối tượng SurfacePackageToken , mỗi đối tượng trong số này là một tham chiếu mờ đến RenderingConfig do IsolatedService trả về hoặc một Exception khi không thành công. Bạn có thể sử dụng các đối tượng SurfacePackageToken được trả về trong lệnh gọi requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) tiếp theo để hiển thị kết quả trong một thành phần hiển thị. Ứng dụng gọi và IsolatedService phải thống nhất về kích thước dự kiến của danh sách này.
Một mục nhập trong danh sách các đối tượng SurfacePackageToken được trả về có thể có giá trị rỗng để cho biết dịch vụ không có đầu ra cho nền tảng cụ thể đó.
Trong trường hợp xảy ra lỗi, trình nhận sẽ trả về một trong các trường hợp ngoại lệ sau:
Trả về PackageManager.NameNotFoundException nếu gói trình xử lý
chưa được cài đặt hoặc không có tệp kê khai ODP hợp lệ.
Trả về ClassNotFoundException nếu không tìm thấy lớp trình xử lý.
Trả về OnDevicePersonalizationException nếu quá trình thực thi trình xử lý không thành công. |
requestSurfacePackage
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
Yêu cầu chèn SurfaceControlViewHost.SurfacePackage
vào SurfaceView
bên trong ứng dụng gọi. Gói giao diện sẽ chứa View
có nội dung từ kết quả của lệnh gọi trước đến #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)
chạy trong hộp cát OnDevicePersonalization.
Tham số | |
---|---|
surfacePackageToken |
SurfacePackageToken : tham chiếu đến SurfacePackageToken do lệnh gọi trước đó đến #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) trả về.
Giá trị này không được là null . |
surfaceViewHostToken |
IBinder : hostToken của SurfaceView do SurfaceView.getHostToken() trả về sau khi SurfaceView được thêm vào hệ phân cấp thành phần hiển thị.
Giá trị này không được là null . |
displayId |
int : Mã nhận dạng số nguyên của màn hình logic để hiển thị SurfaceControlViewHost.SurfacePackage , do Context.getDisplay().getDisplayId() trả về. |
width |
int : chiều rộng của SurfaceControlViewHost.SurfacePackage tính bằng pixel. |
height |
int : chiều cao của SurfaceControlViewHost.SurfacePackage tính bằng pixel. |
executor |
Executor : Executor để gọi lệnh gọi lại
Giá trị này không được là null .
Các sự kiện gọi lại và trình nghe được gửi đi thông qua
Executor này, giúp bạn dễ dàng kiểm soát chuỗi nào được sử dụng. Để gửi thông báo các sự kiện thông qua chuỗi chính trong ứng dụng, bạn có thể sử dụng Context.getMainExecutor() .
Nếu không, hãy cung cấp một Executor điều phối đến một luồng thích hợp. |
receiver |
OutcomeReceiver : Thao tác này sẽ trả về SurfaceControlViewHost.SurfacePackage khi thành công hoặc Exception khi không thành công. Loại ngoại lệ là OnDevicePersonalizationException nếu quá trình thực thi trình xử lý không thành công.
Giá trị này không được là null . |