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 khung hiển thị của ứng dụng, đồng thời ghi
kết quả liên tục vào bộ nhớ trên thiết bị, có thể được liên kết Analytics sử dụng cho
phân tích thống kê trên nhiều thiết bị hoặc bằng công nghệ Học liên kết để huấn luyện mô hình. Các hiển thị
nội dung và đầu ra liên tục đều không thể truy cập trực tiếp bằng ứng dụng gọi.
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. Chiến lược phát hành đĩa đơn
nền tảng liên kết với IsolatedService được chỉ định trong một quy trình tách biệt
và gọi IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
bằng các thông số do phương thức gọi cung cấp. Khi IsolatedService thực thi xong,
nền tảng sẽ trả về các mã thông báo tham chiếu đến kết quả từ dịch vụ đến phương thức gọi.
Sau đó, những mã thông báo này có thể được dùng để hiển thị kết quả trong
SurfaceView 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: một PersistableBundle được truyền từ ứng dụng gọi đến
IsolatedService. Nội dung dự kiến của thông số này đã được xác định
bởi IsolatedService. 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 Executor để gửi đến một luồng phù 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 là
một tham chiếu mờ đến RenderingConfig được trả về bởi một
IsolatedService hoặc Exception khi không thành công. Được trả về
Bạn có thể sử dụng đối tượng SurfacePackageToken trong
requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) để hiển thị kết quả trong một khung hiển thị. Ứng dụng gọi và
IsolatedService phải đồng ý về quy mô dự kiến của danh sách này.
Một mục nhập trong danh sách đối tượng SurfacePackageToken được trả về có thể có giá trị rỗng đối với
chỉ ra rằng dịch vụ không có đầu ra cho bề mặt cụ thể đó.
Trong trường hợp xảy ra lỗi, trình thu nhận sẽ trả về một trong các ngoại lệ sau:
Trả về PackageManager.NameNotFoundException nếu trình xử lý
gói 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 một
SurfaceView bên trong ứng dụng gọi. Gói nền tảng sẽ chứa một
View với nội dung từ cuộc gọi trước đó tới
Chạy #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) trong
hộp cát OnDevicePersonalization.
| Tham số | |
|---|---|
surfacePackageToken |
SurfacePackageToken: tham chiếu đến SurfacePackageToken được trả về trước đó
cuộc gọi đến #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver).
Giá trị này không được là null. |
surfaceViewHostToken |
IBinder: hostToken của SurfaceView, là
được trả về bởi SurfaceView.getHostToken() sau phương thức
SurfaceView đã được thêm vào hệ phân cấp khung 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, được trả bởi
Context.getDisplay().getDisplayId(). |
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 Executor để gửi đến một luồng phù hợp. |
receiver |
OutcomeReceiver: Hàm này trả về một giá trị
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 không thể thực thi trình xử lý.
Giá trị này không được là null. |