OnDevicePersonalizationManager
public
class
OnDevicePersonalizationManager
extends Object
java.lang.Object | |
↳ | android.adservices.ondevicepersonalization.OnDevicePersonalizationManager |
OnDevicePersonalizationManager は、アプリが分離されたプロセスで IsolatedService
を読み込んで操作するための API を提供します。アプリは IsolatedService
をリクエストして、アプリのビュー階層内の SurfaceView
内に表示するコンテンツを生成できます。また、永続的な結果をオンデバイス ストレージに書き込むこともできます。この結果は、クロスデバイス統計分析用のフェデレーション分析またはモデル トレーニング用のフェデレーション ラーニングで使用できます。表示されるコンテンツと永続出力の両方に、呼び出し元のアプリから直接アクセスすることはできません。
概要
パブリック メソッド | |
---|---|
void
|
execute(ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
OnDevicePersonalization サンドボックスで |
void
|
requestSurfacePackage(SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
呼び出し元のアプリ内の |
継承されるメソッド | |
---|---|
パブリック メソッド
execute
public void execute (ComponentName handler, PersistableBundle params, Executor executor, OutcomeReceiver<List<SurfacePackageToken>, Exception> receiver)
OnDevicePersonalization サンドボックスで IsolatedService
を実行します。プラットフォームは、分離されたプロセスで指定された IsolatedService
にバインドし、呼び出し元が指定したパラメータを使用して IsolatedWorker#onExecute(ExecuteInput, java.util.function.Consumer)
を呼び出します。IsolatedService
の実行が完了すると、プラットフォームは、サービスからの結果を参照するトークンを呼び出し元に返します。これらのトークンは、呼び出し元のアプリ内の SurfaceView
に結果を表示するために後で使用できます。
パラメータ | |
---|---|
handler |
ComponentName : IsolatedService の ComponentName 。この値が null になることはありません。 |
params |
PersistableBundle : 呼び出し元のアプリから IsolatedService に渡される PersistableBundle 。このパラメータで想定される内容は、IsolatedService によって定義されます。プラットフォームはこのパラメータを解釈しません。この値が null になることはありません。 |
executor |
Executor : コールバックを呼び出す Executor 。この値が null になることはありません。コールバック イベントとリスナー イベントはこの Executor を通じてディスパッチされるため、使用するスレッドを簡単に制御できます。アプリのメインスレッドを通じてイベントをディスパッチするには、Context.getMainExecutor() を使用します。それ以外の場合は、適切なスレッドにディスパッチする Executor を指定します。 |
receiver |
OutcomeReceiver : SurfacePackageToken オブジェクトのリストを返します。各オブジェクトは、IsolatedService によって返された RenderingConfig への不透明な参照か、失敗した場合は Exception です。返された SurfacePackageToken オブジェクトは、後続の requestSurfacePackage(android.adservices.ondevicepersonalization.SurfacePackageToken, android.os.IBinder, int, int, int, java.util.concurrent.Executor, android.os.OutcomeReceiver) 呼び出しで使用して、結果をビューに表示できます。呼び出し元のアプリと IsolatedService は、このリストの想定サイズについて合意している必要があります。返された SurfacePackageToken オブジェクトのリスト内のエントリが null の場合、サービスにその特定のサーフェスに対する出力がないことを意味します。エラーが発生した場合、レシーバーは次のいずれかの例外を返します。ハンドラ パッケージがインストールされていないか、有効な ODP マニフェストがない場合は、PackageManager.NameNotFoundException を返します。ハンドラクラスが見つからない場合は、ClassNotFoundException を返します。ハンドラの実行に失敗した場合は OnDevicePersonalizationException を返します。 |
requestSurfacePackage
public void requestSurfacePackage (SurfacePackageToken surfacePackageToken, IBinder surfaceViewHostToken, int displayId, int width, int height, Executor executor, OutcomeReceiver<SurfaceControlViewHost.SurfacePackage, Exception> receiver)
呼び出し元アプリ内の SurfaceView
に SurfaceControlViewHost.SurfacePackage
を挿入するようリクエストします。サーフェス パッケージには、OnDevicePersonalization サンドボックスで実行されている #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver)
への以前の呼び出しの結果が含まれる View
が含まれます。
パラメータ | |
---|---|
surfacePackageToken |
SurfacePackageToken : #execute(ComponentName, PersistableBundle, Executor, OutcomeReceiver) の以前の呼び出しから返された SurfacePackageToken への参照。この値が null になることはありません。 |
surfaceViewHostToken |
IBinder : SurfaceView の hostToken。SurfaceView がビュー階層に追加された後に SurfaceView.getHostToken() によって返されます。この値が null になることはありません。 |
displayId |
int : SurfaceControlViewHost.SurfacePackage を表示する論理ディスプレイの整数 ID(Context.getDisplay().getDisplayId() によって返されます)。 |
width |
int : SurfaceControlViewHost.SurfacePackage の幅(ピクセル単位)。 |
height |
int : SurfaceControlViewHost.SurfacePackage の高さ(ピクセル単位)。 |
executor |
Executor : コールバックを呼び出す Executor 。この値を null にすることはできません。コールバック イベントとリスナー イベントはこの Executor を通じてディスパッチされるため、使用するスレッドを簡単に制御できます。アプリのメインスレッドを通じてイベントをディスパッチするには、Context.getMainExecutor() を使用します。それ以外の場合は、適切なスレッドにディスパッチする Executor を指定します。 |
receiver |
OutcomeReceiver : 成功した場合は SurfaceControlViewHost.SurfacePackage を返し、失敗した場合は Exception を返します。ハンドラの実行が失敗した場合、例外タイプは OnDevicePersonalizationException です。この値が null になることはありません。 |