SdkKorumalı Alan Yöneticisi

public final class SdkSandboxManager
extends Object

java.lang.Object
→ Yönergeler android.app.sdksandbox.SdkSandboxManager


SDKs SDK'sını korumalı alan işlemine yüklemek ve ardından bunlarla etkileşimde bulunmak için API'ler sağlar.

SDK korumalı alanı, ayrı bir kullanıcı kimliği aralığında çalışan bir Java işlemidir. Her uygulamanın kendi SDK korumalı alanı işlemi olabilir.

Uygulamanın öncelikle <uses-sdk-library> etiketini kullanarak, bağlı olduğu SDK'ları manifest dosyasında açıklaması gerekir. Uygulamalar, yalnızca bağımlı oldukları SDK'ları SDK korumalı alanına yükleyebilir.

Özet

İç içe yerleştirilmiş sınıflar

interface SdkSandboxManager.SdkSandboxProcessDeathCallback

SDK korumalı alanının ölümünü izlemek için kullanılan geri çağırma. 

Sabitler

String EXTRA_DISPLAY_ID

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, SurfacePackage değerini görüntülemek için mantıksal görüntünün tam sayı kimliğini tanımlamalıdır.

String EXTRA_HEIGHT_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri SurfacePackage öğesinin tam sayı yüksekliğini piksel cinsinden tanımlamalıdır.

String EXTRA_HOST_TOKEN

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, görünüm hiyerarşisine SurfaceView eklendikten sonra SurfaceView.getHostToken() tarafından döndürülen jetonu sunmalıdır.

String EXTRA_SURFACE_PACKAGE

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) alanı olan OutcomeReceiver öğesinin onResult işlevine aktarılan Paketteki anahtarın adı; değeri, istenen SurfacePackage değerini sunar.

String EXTRA_WIDTH_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, SurfacePackage öğesinin tam sayı genişliğini piksel cinsinden tanımlamalıdır.

int LOAD_SDK_ALREADY_LOADED

SDK zaten yüklü.

int LOAD_SDK_INTERNAL_ERROR

SDK yüklenirken dahili hata oluştu.

int LOAD_SDK_NOT_FOUND

SDK bulunamadı.

int LOAD_SDK_SDK_DEFINED_ERROR

Yüklendikten sonra SDK hatası oluştu.

int LOAD_SDK_SDK_SANDBOX_DISABLED

SDK korumalı alanı devre dışı bırakıldı.

int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

SurfacePackage istenirken dahili hata oluştu.

int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SurfacePackage istenirken SDK yüklenmedi.

int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

SDK korumalı alan işlemi kullanılamıyor.

String SDK_SANDBOX_SERVICE

Bu istemci uygulamasına ait SDK'larla etkileşim kurmaya yönelik bir SdkSandboxManager almak için Context#getSystemService(String) ile kullanın.

int SDK_SANDBOX_STATE_DISABLED

SDK korumalı alanı devre dışı bırakıldı.

int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

SDK korumalı alanı etkinleştirildi.

Herkese açık yöntemler

void addSdkSandboxProcessDeathCallback(Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

SDK korumalı alanının ölümü gibi SDK korumalı alan yaşam döngüsü olayları için kaydedilen bir geri çağırma ekler.

void addSyncedSharedPreferencesKeys(Set<String> keys)

Uygulamanın varsayılan SharedPreferences öğesinden SDK korumalı alanına senkronize edilen anahtar grubuna anahtar ekler.

List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces()

Bir uygulama için kayıtlı AppOwnedSdkSandboxInterface listesini getirir

List<SandboxedSdk> getSandboxedSdks()

Korumalı alana yüklenen SDK'lar hakkında bilgi getirir.

static int getSdkSandboxState()

SDK korumalı alanı özelliğinin kullanılabilirlik durumunu döndürür.

Set<String> getSyncedSharedPreferencesKeys()

Uygulamanın varsayılan SharedPreferences değerinden SDK korumalı alanına senkronize edilmekte olan anahtarları döndürür.

void loadSdk(String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

Bir SDK korumalı alan Java işleminde SDK'yı yükler.

void registerAppOwnedSdkSandboxInterface(AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

AppOwnedSdkSandboxInterface uygulamasını bir uygulama işlemine kaydeder.

void removeSdkSandboxProcessDeathCallback(SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Daha önce addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback) kullanılarak eklenmiş bir SdkSandboxProcessDeathCallback kaldırılır

void removeSyncedSharedPreferencesKeys(Set<String> keys)

addSyncedSharedPreferencesKeys(java.util.Set) kullanılarak eklenen anahtar grubundan anahtarları kaldırır

Halihazırda senkronize edilmiş olan anahtarlar SDK korumalı alanından silinir.

void requestSurfacePackage(String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver<BundleRequestSurfacePackageException> receiver)

SDK'ya yüzey paketi için bir istek gönderir.

void startSdkSandboxActivity(Activity fromActivity, IBinder sdkActivityToken)

SDK korumalı alanında bir Activity başlatır.

void unloadSdk(String sdkName)

Arayan tarafından daha önce yüklenen bir SDK'yı kaldırır.

void unregisterAppOwnedSdkSandboxInterface(String name)

Bir uygulama işlemi için ERROR(/AppOwnedSdkSandboxInterfaces) kaydını iptal eder.

Devralınan yöntemler

Sabitler

EKSTRA_DISPLAY_ID

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String EXTRA_DISPLAY_ID

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, SurfacePackage değerini görüntülemek için mantıksal görüntünün tam sayı kimliğini tanımlamalıdır.

Sabit Değer: "android.app.sdksandbox.extra.DISPLAY_ID"

EKSTRA_HEIGHT_IN_PIXELS

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String EXTRA_HEIGHT_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri SurfacePackage öğesinin tam sayı yüksekliğini piksel cinsinden tanımlamalıdır.

Sabit Değer: "android.app.sdksandbox.extra.HEIGHT_IN_PIXELS"

EKSTRA_HOST_TOKEN

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String EXTRA_HOST_TOKEN

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, görünüm hiyerarşisine SurfaceView eklendikten sonra SurfaceView.getHostToken() tarafından döndürülen jetonu sunmalıdır. ANR raporlamasını etkinleştirmek için yalnızca boş olmayan bir değer kabul edilir.

Sabit Değer: "android.app.sdksandbox.extra.HOST_TOKEN"

EKSTRA_SURFACE_PACKAGE

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String EXTRA_SURFACE_PACKAGE

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) alanı olan OutcomeReceiver öğesinin onResult işlevine aktarılan Paketteki anahtarın adı; değeri, istenen SurfacePackage değerini sunar.

Sabit Değer: "android.app.sdksandbox.extra.SURFACE_PACKAGE"

EKSTRA_WIDTH_IN_PIXELS

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String EXTRA_WIDTH_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) Paket alanlarında kullanılacak anahtarın adı. Anahtarın değeri, SurfacePackage öğesinin tam sayı genişliğini piksel cinsinden tanımlamalıdır.

Sabit Değer: "android.app.sdksandbox.extra.WIDTH_IN_PIXELS"

LOAD_SDK_ALREADY_LOADED

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int LOAD_SDK_ALREADY_LOADED

SDK zaten yüklü.

Bu, istemci uygulamasının başarıyla yüklendikten sonra loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) yöntemini çağırarak aynı SDK'yı yeniden yüklemeye çalıştığını belirtir.

Sabit Değer: 101 (0x00000065)

LOAD_SDK_INTERNAL_ERROR

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int LOAD_SDK_INTERNAL_ERROR

SDK yüklenirken dahili hata oluştu.

Bu, istemci uygulamadan gelen çağrı uygulanırken genel bir dahili hata oluştuğunu belirtir.

Sabit Değer: 500 (0x000001f4)

LOAD_SDK_NOT_FOUND

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int LOAD_SDK_NOT_FOUND

SDK bulunamadı.

Bu, istemci uygulamasının loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) yöntemini çağırarak var olmayan bir SDK'yı yüklemeyi denediğini gösterir.

Sabit Değer: 100 (0x00000064)

LOAD_SDK_SDK_DEFINED_ERROR

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int LOAD_SDK_SDK_DEFINED_ERROR

Yüklendikten sonra SDK hatası oluştu.

Bu, SDK'nın yükleme sonrası başlatma sırasında hatayla karşılaştığını gösterir. Bununla ilgili ayrıntılar, SdkSandboxManager#loadSdk ürününe geçirilen OutcomeReceiver ile LoadSdkException içinde döndürülen Paketten edinilebilir.

Sabit Değer: 102 (0x00000066)

LOAD_SDK_SDK_SANDBOX_DEVRE DIŞI

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int LOAD_SDK_SDK_SANDBOX_DISABLED

SDK korumalı alanı devre dışı bırakıldı.

Bu, SDK korumalı alanının devre dışı olduğunu gösterir. Bu başlatmada SDK'ları yüklemek için yapılacak sonraki denemeler de başarısız olur.

Sabit Değer: 103 (0x00000067)

REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

SurfacePackage istenirken dahili hata oluştu.

Bu mesaj, SurfacePackage istenirken genel bir dahili hata oluştuğunu belirtir.

Sabit Değer: 700 (0x000002bc)

REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 5'e de eklendi
public static final int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SurfacePackage istenirken SDK yüklenmedi.

Bu durum, korumalı alan öldüğü veya en başta yüklenmediği için SurfacePackage öğesinin istendiği SDK'nın yüklenmediğini belirtir.

Sabit Değer: 701 (0x000002bd)

SDK_SANDBOX_PROCESS_NOT_AVAILABLE

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

SDK korumalı alan işlemi kullanılamıyor.

Bu, SDK korumalı alanı işleminin öldüğü, bağlantısı kesildiği veya henüz oluşturulmadığı için kullanılamadığını belirtir.

Sabit Değer: 503 (0x000001f7)

SDK_SANDBOX_SERVICE

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public static final String SDK_SANDBOX_SERVICE

Bu istemci uygulamasına ait SDK'larla etkileşim kurmaya yönelik bir SdkSandboxManager almak için Context#getSystemService(String) ile kullanın.

Sabit Değer: "sdk_sandbox"

SDK_SANDBOX_STATE_DEVRE DIŞI

API düzeyi 33'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 3'e de eklendi
public static final int SDK_SANDBOX_STATE_DISABLED

SDK korumalı alanı devre dışı bırakıldı.

SdkSandboxManager API gizlendi. Telefonla arama denemeleri UnsupportedOperationException sonucuna varır.

Sabit Değer: 0 (0x00000000)

SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

API düzeyi 33'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 3'e de eklendi
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

SDK korumalı alanı etkinleştirildi.

Uygulama, ilgili SDK korumalı alan işlemine bağlı olarak SDKs yüklemek için SdkSandboxManager API'lerini kullanabilir.

Sabit Değer: 2 (0x00000002)

Herkese açık yöntemler

addSdkSandboxProcessDeathCallback

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public void addSdkSandboxProcessDeathCallback (Executor callbackExecutor, 
                SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

SDK korumalı alanının ölümü gibi SDK korumalı alan yaşam döngüsü olayları için kaydedilen bir geri çağırma ekler. Bu çağrıldığında korumalı alan henüz oluşturulmamışsa istek, bir korumalı alan oluşturulana kadar depolanır ve artık bu korumalı alan için etkinleştirilir. Ölümü algılamak için birden çok geri çağırma eklenebilir ve korumalı alan öldüğünde kaldırılmaz.

Parametreler
callbackExecutor Executor: Geri çağırmanın çağrılacağı Executor. Bu değer null olamaz. Geri çağırma ve işleyici etkinlikleri, hangi iş parçacığının kullanıldığını kontrol etmek için kolay bir yol sağlayan bu Executor aracılığıyla gönderilir. Etkinlikleri uygulamanızın ana iş parçacığı üzerinden göndermek için Context.getMainExecutor() kullanabilirsiniz. Aksi takdirde, uygun iş parçacığına gönderim yapan bir Executor sağlayın.

callback SdkSandboxManager.SdkSandboxProcessDeathCallback: SDK korumalı alan yaşam döngüsü olaylarını alacak SdkSandboxProcessDeathCallback. Bu değer null olamaz.

addSyncedSharedPreferencesKeys

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 5'e de eklendi
public void addSyncedSharedPreferencesKeys (Set<String> keys)

Uygulamanın varsayılan SharedPreferences öğesinden SDK korumalı alanına senkronize edilen anahtar grubuna anahtar ekler.

Senkronize edilen veriler, SdkSandboxController.getClientSharedPreferences() API'yi kullanarak SDK'ların okuması için hazır olacaktır.

Bu API kullanılarak eklenen herhangi bir anahtarı senkronize etmeyi durdurmak için removeSyncedSharedPreferencesKeys(java.util.Set) işlevini kullanın.

Uygulama yeniden başlatılırsa ve kullanıcının senkronizasyon için anahtar havuzunu yeniden oluşturmak üzere bu API'yi tekrar çağırması gerekirse senkronizasyon bozulur.

Not: Bu sınıf, birden fazla işlemde kullanımı desteklememektedir.

Parametreler
keys Set: Korumalı Alan ile senkronize edilecek anahtar grubu. Bu değer null olamaz.

alUygulamaSahipliSdkKorumalı AlanArayüzleri

public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()

Bir uygulama için kayıtlı AppOwnedSdkSandboxInterface listesini getirir

İlerlemeler
List<AppOwnedSdkSandboxInterface> çağrı bilgisi, haritada bulunamadıysa boş liste, aksi takdirde bir AppOwnedSdkSandboxInterface listesi Bu değer, null olamaz.

Korumalı AlanadiSdk'ler

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 5'e de eklendi
public List<SandboxedSdk> getSandboxedSdks ()

Korumalı alana yüklenen SDK'lar hakkında bilgi getirir.

İlerlemeler
List<SandboxedSdk> Şu anda yüklü olan tüm SDK'ları içeren SandboxedSdk listesi. Bu değer null olamaz.

getSdkSandboxState

API düzeyi 33'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 3'e de eklendi
public static int getSdkSandboxState ()

SDK korumalı alanı özelliğinin kullanılabilirlik durumunu döndürür.

İlerlemeler
int Değer SDK_SANDBOX_STATE_DISABLED veya SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

getSyncedSharedPreferencesKeys

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 5'e de eklendi
public Set<String> getSyncedSharedPreferencesKeys ()

Uygulamanın varsayılan SharedPreferences değerinden SDK korumalı alanına senkronize edilmekte olan anahtarları döndürür.

İlerlemeler
Set<String> Bu değer null olamaz.

yükSdk

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public void loadSdk (String sdkName, 
                Bundle params, 
                Executor executor, 
                OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

Bir SDK korumalı alan Java işleminde SDK'yı yükler.

sdkName içeren SDK kitaplığını, eşzamansız olarak SDK korumalı alan işlemine yükler. Arayan, receiver aracılığıyla bilgilendirilir.

Arayan kişi, <uses-sdk-library> etiketini kullanarak manifest dosyasında bağımlı olduğu SDKs özelliğini halihazırda beyan etmelidir. Arayan, SDK korumalı alanına bağlı olduğu yalnızca SDKs dosyasını yükleyebilir.

İstemci uygulaması ilk SDK'yı yüklediğinde yeni bir SDK korumalı alan işlemi oluşturulur. İstemci uygulama için önceden bir korumalı alan oluşturulmuşsa ek SDK'lar aynı korumalı alana yüklenir.

Bu API yalnızca arayan ön planda çalışırken çağrılabilir. Arka planda yapılan aramalar, receiver içinde LoadSdkException döndürülmesiyle sonuçlanır.

Parametreler
sdkName String: Yüklenecek SDK'nın adı. Bu değer null olamaz.

params Bundle: SDK'ya istemci ile SDK arasında kararlaştırılan şekilde Bundle biçiminde iletilecek ek parametreler. Bu değer null olamaz.

executor Executor: Alıcının çağrılacağı Executor. Bu değer null olamaz. Geri çağırma ve işleyici etkinlikleri, hangi iş parçacığının kullanıldığını kontrol etmek için kolay bir yol sağlayan bu Executor aracılığıyla gönderilir. Etkinlikleri uygulamanızın ana iş parçacığı üzerinden göndermek için Context.getMainExecutor() kullanabilirsiniz. Aksi takdirde, uygun iş parçacığına gönderim yapan bir Executor sağlayın.

receiver OutcomeReceiver: Bu, başarılı bir çalıştırmada SandboxedSdk veya LoadSdkException alır. Bu değer null olamaz.

kayıtUygulamaSahipliSdkKorumalı AlanArayüzü

public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

AppOwnedSdkSandboxInterface uygulamasını bir uygulama işlemine kaydeder.

Daha önce kaydedilmiş bir arayüzle aynı ada sahip bir AppOwnedSdkSandboxInterface kaydedildiğinde IllegalStateException elde edilir.

AppOwnedSdkSandboxInterface#getName(), arayüzün adını ifade eder.

Parametreler
appOwnedSdkSandboxInterface AppOwnedSdkSandboxInterface: Kaydedilecek AppOwnedSdkSandboxInterface Bu değer null olamaz.

Kaldır

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public void removeSdkSandboxProcessDeathCallback (SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Daha önce addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback) kullanılarak eklenmiş bir SdkSandboxProcessDeathCallback kaldırılır

Parametreler
callback SdkSandboxManager.SdkSandboxProcessDeathCallback: Daha önce SdkSandboxManager#addSdkSandboxProcessDeathCallback(Executor, SdkSandboxProcessDeathCallback) kullanılarak eklenen SdkSandboxProcessDeathCallback Bu değer null olamaz.

removeSyncedSharedPreferencesKeys

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 5'e de eklendi
public void removeSyncedSharedPreferencesKeys (Set<String> keys)

addSyncedSharedPreferencesKeys(java.util.Set) kullanılarak eklenen anahtar grubundan anahtarları kaldırır

Halihazırda senkronize edilmiş olan anahtarlar SDK korumalı alanından silinir.

Parametreler
keys Set: Artık Korumalı Alan ile senkronize edilmeyecek anahtar adları grubu. Bu değer null olamaz.

İstekSurfacePaketi

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public void requestSurfacePackage (String sdkName, 
                Bundle params, 
                Executor callbackExecutor, 
                OutcomeReceiver<BundleRequestSurfacePackageException> receiver)

SDK'ya yüzey paketi için bir istek gönderir.

İstemci uygulaması, SDK'nın başarılı bir şekilde yüklendiğine dair bir sinyal aldıktan ve görünüm hiyerarşisine bir SurfaceView ekledikten sonra, SDK'dan görünüm oluşturmak için eşzamansız olarak SurfacePackage isteğinde bulunabilir.

SurfacePackage hazır olduğunda, iletilen receiver öğesinin OutcomeReceiver#onResult geri çağırması çağrılır. Bu geri çağırma, ilişkili değeri istenen SurfacePackage olan SdkSandboxManager#EXTRA_SURFACE_PACKAGE anahtarını içeren bir Bundle nesnesi içerir.

İletilen params şu anahtarları içermelidir: EXTRA_WIDTH_IN_PIXELS, SdkSandboxManager#EXTRA_HEIGHT_IN_PIXELS, SdkSandboxManager#EXTRA_DISPLAY_ID ve SdkSandboxManager#EXTRA_HOST_TOKEN. Bu anahtarlardan herhangi biri eksik veya geçersizse IllegalArgumentException atılır.

Bu API yalnızca arayan ön planda çalışırken çağrılabilir. Arka plandan yapılan çağrılar, receiver içinde RequestSurfacePackageException değerinin döndürülmesine neden olur.

Parametreler
sdkName String: SDK korumalı alanına yüklenen SDK'nın adı. Bu değer null olamaz.

params Bundle: İstemci uygulamasının SDK'ya geçirdiği parametreler. Bu değer null olamaz.

callbackExecutor Executor: Geri çağırmanın çağrılacağı Executor. Bu değer null olamaz. Geri çağırma ve işleyici etkinlikleri, hangi iş parçacığının kullanıldığını kontrol etmek için kolay bir yol sağlayan bu Executor aracılığıyla gönderilir. Etkinlikleri uygulamanızın ana iş parçacığı üzerinden göndermek için Context.getMainExecutor() kullanabilirsiniz. Aksi takdirde, uygun iş parçacığına gönderim yapan bir Executor sağlayın.

receiver OutcomeReceiver: Bu işlem, başarılı olduğunda SurfacePackage değerine sahip SdkSandboxManager#EXTRA_SURFACE_PACKAGE anahtarını içeren Bundle veya hata durumunda RequestSurfacePackageException döndürür. Bu değer null olamaz.

Dekoratif yastıklar
IllegalArgumentException (params) gerekli tüm anahtarları içermiyorsa.

başlangıçSdkKorumalı AlanEtkinliği

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 7'ye de eklendi
public void startSdkSandboxActivity (Activity fromActivity, 
                IBinder sdkActivityToken)

SDK korumalı alanında bir Activity başlatır.

Bu işlev, iletilen fromActivity göreviyle aynı görevde yeni bir Activity başlatır ve bunu, iletilen sdkActivityToken bilgisini paylaşan SDK'ya iletir. Bu SDK'dan bu Activity özelliğini belirtmek için bir istek tanımlar.

Activity aşağıdaki durumlarda başlamaz:

  • Bu API'yi çağıran Uygulama arka plandadır.
  • İletilen sdkActivityToken, kendisini arayan uygulamayla paylaşan SDK'dan bir Activity formu isteğiyle eşlenmiyor.
  • İletilen sdkActivityToken öğesini paylaşan SDK, bu Activity için isteğini kaldırdı.
  • Activity korumalı alanı zaten oluşturulmuş.

Parametreler
fromActivity Activity: Activity, buna karşı Activity#startActivity(Intent) çağrısı yaparak yeni Activity korumalı alanını başlatmak için kullanılır. Bu değer null olamaz.

sdkActivityToken IBinder: Activity isteğinde bulunan SDK tarafından paylaşılan tanımlayıcı. Bu değer null olamaz.

unloadSdk

API düzeyi 34'e eklendi
Ayrıca Reklam Hizmetleri Uzantıları 4'e de eklendi
public void unloadSdk (String sdkName)

Arayan tarafından daha önce yüklenen bir SDK'yı kaldırır.

Bu SDK için ayrılan belleğin hemen boşayacağı garanti edilmez. Belirtilen sdkName için requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) öğesine yapılan sonraki tüm çağrılar başarısız olur.

Bu API yalnızca arayan ön planda çalışırken çağrılabilir. Arka plandan yapılan aramalar, SecurityException cihazın atılmasına neden olur.

Parametreler
sdkName String: Kaldırılacak SDK'nın adı. Bu değer null olamaz.

unregisterAppSahipSdkKorumalı AlanArayüzü

public void unregisterAppOwnedSdkSandboxInterface (String name)

Bir uygulama işlemi için ERROR(/AppOwnedSdkSandboxInterfaces) kaydını iptal eder.

Parametreler
name String: AppOwnedSdkSandboxInterface'in kayıtlı olduğu ad. Bu değer null olamaz.