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 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 một 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. 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.SurfacePackageException> 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.