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)
SurfaceControlViewHost.SurfacePackage
を呼び出し元のアプリ内の SurfaceView
に挿入するようリクエストします。サーフェス パッケージには、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 にすることはできません。 |