Pengelola Personalisasi Perangkat

public class OnDevicePersonalizationManager
extends Object

java.lang.Object
   ↳ android.adservices.ondevicepersonalization.OnDevicePersonalizationManager


OnDevicePersonalizationManager menyediakan API bagi aplikasi untuk memuat IsolatedService dalam proses terpisah dan berinteraksi dengannya. Aplikasi dapat meminta IsolatedService guna membuat konten untuk ditampilkan dalam SurfaceView dalam hierarki tampilan aplikasi, dan juga menulis hasil persisten ke penyimpanan di perangkat yang dapat digunakan oleh Federated Analytics untuk analisis statistik lintas-perangkat atau oleh Federated Learning untuk pelatihan model. Konten yang ditampilkan dan output persisten tidak dapat diakses langsung oleh aplikasi panggilan.

Ringkasan

Metode publik

void execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

Menjalankan IsolatedService di sandbox OnDevicePersonalization.

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

Meminta SurfaceControlViewHost.SurfacePackage untuk disisipkan ke SurfaceView di dalam aplikasi panggilan.

Metode turunan

Metode publik

eksekusi

public void execute (ComponentName handler, 
                PersistableBundle params, 
                Executor executor, 
                OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)

Menjalankan IsolatedService di sandbox OnDevicePersonalization. Platform mengikat ke IsolatedService yang ditentukan dalam proses yang terisolasi dan memanggil IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer) dengan parameter yang disediakan pemanggil. Setelah IsolatedService menyelesaikan eksekusi, platform akan menampilkan token yang merujuk ke hasil dari layanan ke pemanggil. Token ini selanjutnya dapat digunakan untuk menampilkan hasil dalam SurfaceView dalam aplikasi pemanggil.

Parameter
handler ComponentName: ComponentName dari IsolatedService. Nilai ini tidak boleh null.

params PersistableBundle: PersistableBundle yang diteruskan dari aplikasi panggilan ke IsolatedService. Konten yang diharapkan dari parameter ini ditentukan oleh IsolatedService. Platform tidak menafsirkan parameter ini. Nilai ini tidak boleh null.

executor Executor: Executor tempat untuk memanggil callback. Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui Executor ini , yang menyediakan cara mudah untuk mengontrol thread yang digunakan. Untuk mengirim peristiwa melalui thread utama aplikasi, Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, berikan Executor yang dikirimkan ke thread yang sesuai.

receiver OutcomeReceiver: Tindakan ini menampilkan daftar objek SurfacePackageToken, yang masing-masing merupakan referensi buram ke RenderingConfig yang ditampilkan oleh IsolatedService, atau Exception jika gagal. Objek SurfacePackageToken yang ditampilkan dapat digunakan dalam panggilan requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) berikutnya untuk menampilkan hasilnya dalam tampilan. Aplikasi pemanggil dan IsolatedService harus menyetujui ukuran yang diharapkan dari daftar ini. Entri dalam daftar objek SurfacePackageToken yang ditampilkan mungkin bernilai null untuk menunjukkan bahwa layanan tidak memiliki output untuk platform spesifik tersebut. Jika terjadi error, penerima akan menampilkan salah satu pengecualian berikut: Menampilkan PackageManager.NameNotFoundException jika paket pengendali tidak diinstal atau tidak memiliki manifes ODP yang valid. Menampilkan ClassNotFoundException jika class pengendali tidak ditemukan. Menampilkan OnDevicePersonalizationException jika eksekusi pengendali gagal.

requestSurfacePackage

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

Meminta SurfaceControlViewHost.SurfacePackage untuk disisipkan ke dalam SurfaceView di dalam aplikasi panggilan. Paket platform akan berisi View dengan konten dari hasil panggilan sebelumnya ke #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) yang berjalan di sandbox OnDevicePersonalization.

Parameter
surfacePackageToken SurfacePackageToken: referensi ke SurfacePackageToken yang ditampilkan oleh panggilan sebelumnya ke #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver). Nilai ini tidak boleh null.

surfaceViewHostToken IBinder: hostToken SurfaceView, yang ditampilkan oleh SurfaceView.getHostToken() setelah SurfaceView ditambahkan ke hierarki tampilan. Nilai ini tidak boleh null.

displayId int: ID bilangan bulat dari tampilan logis yang akan digunakan untuk menampilkan SurfaceControlViewHost.SurfacePackage, yang ditampilkan oleh Context.getDisplay().getDisplayId().

width int: lebar SurfaceControlViewHost.SurfacePackage dalam piksel.

height int: tinggi SurfaceControlViewHost.SurfacePackage dalam piksel.

executor Executor: Executor yang akan memanggil callback Nilai ini tidak boleh null. Peristiwa callback dan pemroses dikirim melalui Executor ini , yang menyediakan cara mudah untuk mengontrol thread yang digunakan. Untuk mengirim peristiwa melalui thread utama aplikasi, Anda dapat menggunakan Context.getMainExecutor(). Jika tidak, berikan Executor yang dikirimkan ke thread yang sesuai.

receiver OutcomeReceiver: Metode ini akan menampilkan SurfaceControlViewHost.SurfacePackage jika berhasil, atau Exception jika gagal. Jenis pengecualiannya adalah OnDevicePersonalizationException jika eksekusi pengendali gagal. Nilai ini tidak boleh null.