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)
호출 앱 내부의 |
상속된 메서드 | |
---|---|
공개 메서드
실행
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 일 수 없습니다. |