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 IsolatedService trong hộp cát OnDevicePersonalization.

void requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackageException> receiver)

Yêu cầu chèn SurfaceControlViewHost.SurfacePackage vào SurfaceView bên trong ứng dụng gọi.

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.SurfacePackageException> 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.