एसडीकेसैंडबॉक्समैनेजर

public final class SdkSandboxManager
extends Object

java.lang.Object
android.app.sdksandbox.SdkSandboxManager


यह एपीआई को एपीआई की मदद से, यहांSDKs SDK टूल सैंडबॉक्स प्रोसेस करता है और फिर उसके साथ इंटरैक्ट करता है.

SDK सैंडबॉक्स एक जावा प्रोसेस है, जो एक अलग यूआईडी रेंज में चल रही है. हर ऐप्लिकेशन का अपना SDK टूल हो सकता है सैंडबॉक्स प्रोसेस करता है.

ऐप्लिकेशन को सबसे पहले, <uses-sdk-library> टैग का इस्तेमाल करके यह बताना होगा कि वह SDK टूल के मेनिफ़ेस्ट में उन SDK टूल पर निर्भर करता है जिन पर वह निर्भर करता है. ऐप्लिकेशन, SDK टूल के सैंडबॉक्स में सिर्फ़ उन SDK टूल को लोड कर सकते हैं जो उन पर निर्भर करते हैं.

खास जानकारी

नेस्ट की गई क्लास

interface SdkSandboxManager.SdkSandboxProcessDeathCallback

SDK टूल के सैंडबॉक्स की मौत को ट्रैक करने से जुड़ा कॉलबैक. 

स्थिरांक

String EXTRA_DISPLAY_ID

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसका मान लॉजिकल के पूर्णांक आईडी को तय करना चाहिए SurfacePackage को दिखाने के लिए डिसप्ले का इस्तेमाल करना होगा.

String EXTRA_HEIGHT_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसकी वैल्यू SurfacePackage की पूर्णांक ऊंचाई को पिक्सल में तय करना चाहिए.

String EXTRA_HOST_TOKEN

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम. इसकी वैल्यू में, SurfaceView के होने पर SurfaceView.getHostToken() से मिला टोकन मौजूद होना चाहिए व्यू हैरारकी में जोड़ा गया.

String EXTRA_SURFACE_PACKAGE

बंडल में मौजूद कुंजी का नाम, जिसे OutcomeReceiver के onResult फ़ंक्शन को भेजा गया है. यह फ़ंक्शन requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) फ़ील्ड है, इसकी वैल्यू अनुरोध किए गए SurfacePackage के बारे में बताती है.

String EXTRA_WIDTH_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसकी वैल्यू SurfacePackage की पूर्णांक चौड़ाई को पिक्सल में तय करना चाहिए.

int LOAD_SDK_ALREADY_LOADED

SDK टूल पहले ही लोड हो गया है.

int LOAD_SDK_INTERNAL_ERROR

SDK टूल लोड करते समय कोई अंदरूनी गड़बड़ी हुई.

int LOAD_SDK_NOT_FOUND

SDK टूल नहीं मिला.

int LOAD_SDK_SDK_DEFINED_ERROR

लोड होने के बाद SDK टूल की गड़बड़ी.

int LOAD_SDK_SDK_SANDBOX_DISABLED

SDK टूल का सैंडबॉक्स बंद है.

int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

SurfacePackage का अनुरोध करते समय अंदरूनी गड़बड़ी हुई.

int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SurfacePackage का अनुरोध करने पर, SDK टूल लोड नहीं होता है.

int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

SDK टूल की सैंडबॉक्स प्रोसेस उपलब्ध नहीं है.

String SDK_SANDBOX_SERVICE

SdkSandboxManager को वापस पाने के लिए, Context#getSystemService(String) के साथ इस्तेमाल करें इस क्लाइंट ऐप्लिकेशन से संबंधित SDK टूल के साथ इंटरैक्ट करने के लिए.

int SDK_SANDBOX_STATE_DISABLED

SDK टूल का सैंडबॉक्स बंद है.

int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

SDK टूल का सैंडबॉक्स चालू है.

सार्वजनिक तरीके

void addSdkSandboxProcessDeathCallback(Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

इससे एक कॉलबैक जोड़ा जाता है, जो SDK टूल सैंडबॉक्स लाइफ़साइकल इवेंट के लिए रजिस्टर किया जाता है. जैसे, SDK टूल सैंडबॉक्स मौत.

void addSyncedSharedPreferencesKeys(Set<String> keys)

ऐप्लिकेशन के डिफ़ॉल्ट SharedPreferences से SDK टूल में सिंक की जा रही कुंजियों के सेट में कुंजियां जोड़ता है सैंडबॉक्स.

List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces()

किसी ऐप्लिकेशन के लिए रजिस्टर की गई AppOwnedSdkSandboxInterface की सूची फ़ेच करता है

List<SandboxedSdk> getSandboxedSdks()

इससे सैंडबॉक्स में लोड किए गए SDK टूल के बारे में जानकारी मिलती है.

static int getSdkSandboxState()

SDK टूल की सैंडबॉक्स सुविधा की उपलब्धता की मौजूदा स्थिति दिखाता है.

Set<String> getSyncedSharedPreferencesKeys()

सेट की गई उन कुंजियों को वापस लौटाता है जिन्हें ऐप्लिकेशन के डिफ़ॉल्ट SharedPreferences से इस पर सिंक किया जा रहा है को भी लोड किया जा सकता है.

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

SDK टूल सैंडबॉक्स जावा प्रोसेस में SDK टूल लोड करता है.

void registerAppOwnedSdkSandboxInterface(AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

ऐप्लिकेशन से जुड़ी प्रोसेस के लिए, AppOwnedSdkSandboxInterface को रजिस्टर करता है.

void removeSdkSandboxProcessDeathCallback(SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback) का इस्तेमाल करके पहले जोड़े गए SdkSandboxProcessDeathCallback को हटाता है

void removeSyncedSharedPreferencesKeys(Set<String> keys)

addSyncedSharedPreferencesKeys(java.util.Set) का इस्तेमाल करके जोड़े गए कुंजियों के सेट से कुंजियां हटाती हैं

अगर हटाई गई कुंजियां पहले से सिंक की गई हैं, तो SDK टूल के सैंडबॉक्स से उन्हें मिटा दिया जाएगा.

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

SDK टूल को सरफ़ेस पैकेज के लिए अनुरोध भेजता है.

void startSdkSandboxActivity(Activity fromActivity, IBinder sdkActivityToken)

SDK टूल के सैंडबॉक्स में Activity शुरू करता है.

void unloadSdk(String sdkName)

उस SDK टूल को अनलोड करता है जिसे कॉलर के ज़रिए पहले लोड किया जा चुका है.

void unregisterAppOwnedSdkSandboxInterface(String name)

यह ऐप्लिकेशन की प्रोसेस के लिए, ERROR(/AppOwnedSdkSandboxInterfaces) का रजिस्ट्रेशन रद्द करता है.

इनहेरिट किए गए तरीके

स्थिरांक

अतिरिक्त_DISPLAY_ID

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String EXTRA_DISPLAY_ID

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसका मान लॉजिकल के पूर्णांक आईडी को तय करना चाहिए SurfacePackage को दिखाने के लिए डिसप्ले का इस्तेमाल करना होगा.

कॉन्स्टेंट वैल्यू: "android.app.sdksandbox.extra.DISPLAY_ID"

अतिरिक्त_HEIGHT_IN_PIXELS

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String EXTRA_HEIGHT_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसकी वैल्यू SurfacePackage की पूर्णांक ऊंचाई को पिक्सल में तय करना चाहिए.

कॉन्स्टेंट वैल्यू: "android.app.sdksandbox.extra.HEIGHT_IN_PIXELS"

additional_Host_TOKEN

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String EXTRA_HOST_TOKEN

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम. इसकी वैल्यू में, SurfaceView के होने पर SurfaceView.getHostToken() से मिला टोकन मौजूद होना चाहिए व्यू हैरारकी में जोड़ा गया. ANR की रिपोर्ट पाने की सुविधा चालू करने के लिए, सिर्फ़ ऐसी वैल्यू स्वीकार की जाती है जो शून्य नहीं है.

कॉन्स्टेंट वैल्यू: "android.app.sdksandbox.extra.Host_TOKEN"

अतिरिक्त_SURFACE_PACKAGE

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String EXTRA_SURFACE_PACKAGE

बंडल में मौजूद कुंजी का नाम, जिसे OutcomeReceiver के onResult फ़ंक्शन को भेजा गया है. यह फ़ंक्शन requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) फ़ील्ड है, इसकी वैल्यू अनुरोध किए गए SurfacePackage के बारे में बताती है.

कॉन्स्टेंट वैल्यू: "android.app.sdksandbox.extra.SURFACE_PACKAGE"

अतिरिक्त_WIDTH_IN_PIXELS

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String EXTRA_WIDTH_IN_PIXELS

requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) के बंडल फ़ील्ड में इस्तेमाल की जाने वाली कुंजी का नाम, इसकी वैल्यू SurfacePackage की पूर्णांक चौड़ाई को पिक्सल में तय करना चाहिए.

कॉन्स्टेंट वैल्यू: "android.app.sdksandbox.extra.WIDTH_IN_PIXELS"

LOAD_SDK_ALREADY_LOADED

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int LOAD_SDK_ALREADY_LOADED

SDK टूल पहले ही लोड हो गया है.

इससे पता चलता है कि क्लाइंट ऐप्लिकेशन नेloadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) सफलतापूर्वक लोड हो गया.

कॉन्स्टेंट वैल्यू: 101 (0x00000065)

LOAD_SDK_INTERNAL_ERROR

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int LOAD_SDK_INTERNAL_ERROR

SDK टूल लोड करते समय कोई अंदरूनी गड़बड़ी हुई.

इससे पता चलता है कि क्लाइंट से कॉल लागू करते समय कोई सामान्य अंदरूनी गड़बड़ी हुई है का इस्तेमाल करें.

कॉन्स्टेंट वैल्यू: 500 (0x000001f4)

लोड_SDK_NOT_FOUND

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int LOAD_SDK_NOT_FOUND

SDK टूल नहीं मिला.

इससे पता चलता है कि क्लाइंट ऐप्लिकेशन ने loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) को कॉल करके, एक ऐसे SDK टूल को लोड करने की कोशिश की है जो मौजूद नहीं है.

कॉन्स्टेंट वैल्यू: 100 (0x00000064)

LOAD_SDK_SDK टूल DEFINED_ERROR

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int LOAD_SDK_SDK_DEFINED_ERROR

लोड होने के बाद SDK टूल की गड़बड़ी.

इससे पता चलता है कि पोस्ट-लोड शुरू करने के दौरान, SDK टूल में कोई गड़बड़ी हुई है. कॉन्टेंट बनाने इस बारे में जानकारी, LoadSdkException में लौटाए गए बंडल में देखी जा सकती है. इसके लिए: OutcomeReceiver, SdkSandboxManager#loadSdk में पास हुआ.

कॉन्स्टेंट वैल्यू: 102 (0x00000066)

LOAD_SDK_SDK_SANDBOX_ प्रमोशनD

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int LOAD_SDK_SDK_SANDBOX_DISABLED

SDK टूल का सैंडबॉक्स बंद है.

इससे पता चलता है कि SDK टूल का सैंडबॉक्स बंद है. अगर इसके बाद SDK टूल लोड करने की कोशिश की जाती है, यह बूट भी विफल हो जाएगा.

कॉन्स्टेंट वैल्यू: 103 (0x00000067)

REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

SurfacePackage का अनुरोध करते समय अंदरूनी गड़बड़ी हुई.

यह दिखाता है कि एक सामान्य अंदरूनी गड़बड़ी हुई है. SurfacePackage.

कॉन्स्टेंट वैल्यू: 700 (0x000002bc)

REQUEST_SURFACE_PACKAGE_SDK टूल_NOT_LOADED

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 5 में भी जोड़ा गया
public static final int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SurfacePackage का अनुरोध करने पर, SDK टूल लोड नहीं होता है.

इससे पता चलता है कि जिस SDK टूल के लिए SurfacePackage का अनुरोध किया जा रहा है वह SDK टूल लोड हो गया, क्योंकि सैंडबॉक्स बंद हो गया या वह पहली बार में लोड ही नहीं हुआ.

कॉन्स्टेंट वैल्यू: 701 (0x000002bd)

SDK_SANDBOX_IMAGES_NOT_Available

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

SDK टूल की सैंडबॉक्स प्रोसेस उपलब्ध नहीं है.

इससे पता चलता है कि SDK टूल की सैंडबॉक्स प्रोसेस उपलब्ध नहीं है. किसी प्रोसेस के बंद होने की वजह से, डिसकनेक्ट किया गया है या पहले ही नहीं बनाया गया है.

कॉन्स्टेंट वैल्यू: 503 (0x000001f7)

SDK_SANDBOX_SERVICE

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public static final String SDK_SANDBOX_SERVICE

SdkSandboxManager को वापस पाने के लिए, Context#getSystemService(String) के साथ इस्तेमाल करें इस क्लाइंट ऐप्लिकेशन से संबंधित SDK टूल के साथ इंटरैक्ट करने के लिए.

कॉन्स्टेंट वैल्यू: "SDK_सैंडबॉक्स"

SDK_SANDBOX_STATUS_ सुविधाओं को बंद करें

एपीआई लेवल 33 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 3 में भी जोड़ा गया
public static final int SDK_SANDBOX_STATE_DISABLED

SDK टूल का सैंडबॉक्स बंद है.

SdkSandboxManager एपीआई छिपे हुए हैं. उन्हें कॉल करने की कोशिश करने पर UnsupportedOperationException मिलेंगे.

कॉन्स्टेंट वैल्यू: 0 (0x00000000)

SDK_SANDBOX_स्टेट_चालू_ निलंबन_ISOLATION

एपीआई लेवल 33 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 3 में भी जोड़ा गया
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

SDK टूल का सैंडबॉक्स चालू है.

ऐप्लिकेशन, SDKs को लोड करने के लिए SdkSandboxManager एपीआई का इस्तेमाल कर सकता है. यह इस पर निर्भर करता है संबंधित SDK टूल सैंडबॉक्स प्रोसेस.

कॉन्स्टेंट वैल्यू: 2 (0x00000002)

सार्वजनिक तरीके

addSdkSandboxProcessDeathCallback

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void addSdkSandboxProcessDeathCallback (Executor callbackExecutor, 
                SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

इससे एक कॉलबैक जोड़ा जाता है, जो SDK टूल सैंडबॉक्स लाइफ़साइकल इवेंट के लिए रजिस्टर किया जाता है. जैसे, SDK टूल सैंडबॉक्स मौत. अगर अनुरोध किए जाने के दौरान सैंडबॉक्स बनाया गया है, तो अनुरोध को तब तक सेव करके रखा जाता है, जब तक सैंडबॉक्स बन नहीं जाता. इसके बाद, वह उस सैंडबॉक्स के लिए चालू हो जाता है. एक से ज़्यादा मौत का पता लगाने के लिए कॉलबैक जोड़े जा सकते हैं और सैंडबॉक्स के मरने पर, इसे हटाया नहीं जा सकता.

पैरामीटर
callbackExecutor Executor: वह Executor जिस पर कॉलबैक शुरू करना है यह मान null नहीं हो सकता. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

callback SdkSandboxManager.SdkSandboxProcessDeathCallback: वह SdkSandboxProcessDeathCallback जिसे SDK टूल का सैंडबॉक्स मिलेगा लाइफ़साइकल इवेंट. यह मान null नहीं हो सकता.

addSyncedSharedPreferencesKeys

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 5 में भी जोड़ा गया
public void addSyncedSharedPreferencesKeys (Set<String> keys)

ऐप्लिकेशन के डिफ़ॉल्ट SharedPreferences से SDK टूल में सिंक की जा रही कुंजियों के सेट में कुंजियां जोड़ता है सैंडबॉक्स.

सिंक किया गया डेटा, SDK टूल के लिए उपलब्ध होगा, ताकि उसे SdkSandboxController.getClientSharedPreferences() एपीआई का इस्तेमाल करके पढ़ा जा सके.

इस एपीआई का इस्तेमाल करके जोड़ी गई किसी भी कुंजी को सिंक होने से रोकने के लिए, removeSyncedSharedPreferencesKeys(java.util.Set) का इस्तेमाल करें.

अगर ऐप्लिकेशन रीस्टार्ट होता है और पूल को फिर से बनाने के लिए, उपयोगकर्ता को इस एपीआई को फिर से कॉल करना पड़ता है, तो सिंक की प्रोसेस रुक जाती है कुंजियों का इस्तेमाल करें.

ध्यान दें: इस क्लास का इस्तेमाल एक से ज़्यादा प्रोसेस में नहीं किया जा सकता.

पैरामीटर
keys Set: कुंजियों का सेट जिसे सैंडबॉक्स से सिंक किया जाएगा. यह मान null नहीं हो सकता.

'ऐप्लिकेशन के मालिकाना हक वाला'SdkSandbox इंटरफ़ेस

public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()

किसी ऐप्लिकेशन के लिए रजिस्टर की गई AppOwnedSdkSandboxInterface की सूची फ़ेच करता है

रिटर्न
List<AppOwnedSdkSandboxInterface> अगर मैप में कॉलिंग जानकारी नहीं मिली है, तो खाली सूची. अगर ऐसा नहीं है, तो AppOwnedSdkSandboxInterface की सूची यह मान null नहीं हो सकता.

GetSandboxedSdks

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 5 में भी जोड़ा गया
public List<SandboxedSdk> getSandboxedSdks ()

इससे सैंडबॉक्स में लोड किए गए SDK टूल के बारे में जानकारी मिलती है.

रिटर्न
List<SandboxedSdk> SandboxedSdk की सूची जिसमें हाल ही में लोड किए गए सभी SDK टूल शामिल हैं. यह मान null नहीं हो सकता.

getSdkSandboxState

एपीआई लेवल 33 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 3 में भी जोड़ा गया
public static int getSdkSandboxState ()

SDK टूल की सैंडबॉक्स सुविधा की उपलब्धता की मौजूदा स्थिति दिखाता है.

रिटर्न
int मान SDK_SANDBOX_STATE_DISABLED या SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION है

getSyncedSharedPreferencesKeys

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 5 में भी जोड़ा गया
public Set<String> getSyncedSharedPreferencesKeys ()

सेट की गई उन कुंजियों को वापस लौटाता है जिन्हें ऐप्लिकेशन के डिफ़ॉल्ट SharedPreferences से इस पर सिंक किया जा रहा है को भी लोड किया जा सकता है.

रिटर्न
Set<String> यह मान null नहीं हो सकता.

लोड करें

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void loadSdk (String sdkName, 
                Bundle params, 
                Executor executor, 
                OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

SDK टूल सैंडबॉक्स जावा प्रोसेस में SDK टूल लोड करता है.

इस विकल्प से, SDK टूल की लाइब्रेरी को sdkName के साथ एसिंक्रोनस तरीके से SDK टूल की सैंडबॉक्स प्रोसेस में लोड किया जाता है. कॉन्टेंट बनाने कॉलर को receiver पर सूचना दी जाएगी.

कॉल करने वाले (कॉलर) को <uses-sdk-library> टैग का इस्तेमाल करके पहले ही यह एलान कर देना चाहिए कि वह SDKs पर निर्भर है. कॉलर सिर्फ़ SDKs लोड कर सकता है. यह SDK टूल पर निर्भर करता है सैंडबॉक्स.

क्लाइंट ऐप्लिकेशन में जब पहला SDK टूल लोड होगा, तब SDK टूल सैंडबॉक्स की नई प्रोसेस बनाया गया. अगर क्लाइंट ऐप्लिकेशन के लिए एक सैंडबॉक्स पहले से ही बना दिया गया है, तो अतिरिक्त SDK टूल एक ही सैंडबॉक्स में लोड किया जाएगा.

इस एपीआई को सिर्फ़ तब कॉल किया जा सकता है, जब कॉलर फ़ोरग्राउंड में चल रहा हो. बैकग्राउंड का इस्तेमाल करने पर, receiver में LoadSdkException दिखेगा.

पैरामीटर
sdkName String: लोड किए जाने वाले SDK टूल का नाम. यह मान null नहीं हो सकता.

params Bundle: SDK टूल को Bundle के तौर पर भेजे जाने वाले अतिरिक्त पैरामीटर जैसा कि क्लाइंट और SDK टूल के बीच सहमति हुई है. यह मान null नहीं हो सकता.

executor Executor: वह Executor जिस पर रिसीवर को कॉल करना है. यह मान null नहीं हो सकता. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: इसे या तो सही तरीके से चलने पर SandboxedSdk या LoadSdkException मिलेगा. यह मान null नहीं हो सकता.

रजिस्टर ऐप्लिकेशन के मालिकाना हक वालाSdkSandbox इंटरफ़ेस

public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

ऐप्लिकेशन से जुड़ी प्रोसेस के लिए, AppOwnedSdkSandboxInterface को रजिस्टर करता है.

किसी ऐसे AppOwnedSdkSandboxInterface को रजिस्टर करना जिसका नाम पहले वाले नाम से मेल खाता हो रजिस्टर किए गए इंटरफ़ेस का नतीजा IllegalStateException मिलेगा.

AppOwnedSdkSandboxInterface#getName() का मतलब इंटरफ़ेस का नाम है.

पैरामीटर
appOwnedSdkSandboxInterface AppOwnedSdkSandboxInterface: AppOwnerSdkSandboxInterface को रजिस्टर किया जाना है यह मान null नहीं हो सकता.

हटाएँSdkSandboxProcessDeathCallback

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void removeSdkSandboxProcessDeathCallback (SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback) का इस्तेमाल करके पहले जोड़े गए SdkSandboxProcessDeathCallback को हटाता है

पैरामीटर
callback SdkSandboxManager.SdkSandboxProcessDeathCallback: SdkSandboxProcessDeathCallback, जिसे पहले इसका इस्तेमाल करके जोड़ा गया था SdkSandboxManager#addSdkSandboxProcessDeathCallback(Executor, SdkSandboxProcessDeathCallback) यह मान null नहीं हो सकता.

removedSyncedSharedPreferencesKeys

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 5 में भी जोड़ा गया
public void removeSyncedSharedPreferencesKeys (Set<String> keys)

addSyncedSharedPreferencesKeys(java.util.Set) का इस्तेमाल करके जोड़े गए कुंजियों के सेट से कुंजियां हटाती हैं

अगर हटाई गई कुंजियां पहले से सिंक की गई हैं, तो SDK टूल के सैंडबॉक्स से उन्हें मिटा दिया जाएगा.

पैरामीटर
keys Set: उन कुंजी नामों का सेट जो अब सैंडबॉक्स से सिंक नहीं किए जाने चाहिए. यह मान null नहीं हो सकता.

सरफ़ेस पैकेज का अनुरोध करें

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void requestSurfacePackage (String sdkName, 
                Bundle params, 
                Executor callbackExecutor, 
                OutcomeReceiver<BundleRequestSurfacePackageException> receiver)

SDK टूल को सरफ़ेस पैकेज के लिए अनुरोध भेजता है.

क्लाइंट ऐप्लिकेशन को SDK टूल के सही से लोड होने का सिग्नल मिलने के बाद, व्यू हैरारकी में SurfaceView जोड़ा गया है, तो यह एसिंक्रोनस तरीके से अनुरोध कर सकता है SDK टूल से व्यू रेंडर करने के लिए, SurfacePackage.

SurfacePackage तैयार होने पर, इसका OutcomeReceiver#onResult कॉलबैक पास किए गए receiver को फिर से शुरू किया जाएगा. इस कॉलबैक में एक Bundle होगा ऑब्जेक्ट होगा, जिसमें SdkSandboxManager#EXTRA_SURFACE_PACKAGE कुंजी होगी जिसकी संबंधित मान, अनुरोध किया गया SurfacePackage है.

पास किए गए params में ये कुंजियां शामिल होनी चाहिए: EXTRA_WIDTH_IN_PIXELS, SdkSandboxManager#EXTRA_HEIGHT_IN_PIXELS, SdkSandboxManager#EXTRA_DISPLAY_ID और SdkSandboxManager#EXTRA_HOST_TOKEN. अगर आपने इनमें से कोई भी कुंजी मौजूद नहीं है या गलत है, तो IllegalArgumentException दिया जाएगा.

इस एपीआई को सिर्फ़ तब कॉल किया जा सकता है, जब कॉलर फ़ोरग्राउंड में चल रहा हो. बैकग्राउंड का इस्तेमाल करने पर, receiver में requestSurfacePackage एक्सेप्शन दिखेगी.

पैरामीटर
sdkName String: SDK टूल के सैंडबॉक्स में लोड किए गए SDK टूल का नाम. यह मान null नहीं हो सकता.

params Bundle: ऐसे पैरामीटर जिन्हें क्लाइंट ऐप्लिकेशन, SDK टूल को पास करता है. यह मान null नहीं हो सकता.

callbackExecutor Executor: वह Executor जिस पर कॉलबैक शुरू करना है यह मान null नहीं हो सकता. कॉलबैक और लिसनर इवेंट इस तरीके से भेजे जाते हैं Executor की मदद से, यह आसानी से कंट्रोल किया जा सकता है कि कौनसा थ्रेड इस्तेमाल किया गया. अपने मुख्य थ्रेड के ज़रिए इवेंट भेजने के लिए तो आप उपयोग कर सकते हैं Context.getMainExecutor(). अगर ऐसा नहीं है, तो सही थ्रेड पर भेजने वाला Executor दें.

receiver OutcomeReceiver: इससे या तो सही होने पर Bundle दिखाता है, जिसमें कुंजी शामिल होगी SurfacePackage वैल्यू के साथ SdkSandboxManager#EXTRA_SURFACE_PACKAGE या फ़ेल होने पर RequestSurfacePackageException. यह मान null नहीं हो सकता.

थ्रो
IllegalArgumentException अगर params में सभी ज़रूरी कुंजियां मौजूद न हों.

startSdkSandboxगतिविधि

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 7 में भी जोड़ा गया
public void startSdkSandboxActivity (Activity fromActivity, 
                IBinder sdkActivityToken)

SDK टूल के सैंडबॉक्स में Activity शुरू करता है.

यह फ़ंक्शन, पास किए गए fromActivity के उसी टास्क में नया Activity शुरू करेगा. साथ ही, इसे उस SDK टूल को भेज देगा जिसने पास की गई sdkActivityToken को शेयर किया है उस SDK टूल के अनुरोध की पहचान करता है, ताकि इस Activity को दिखाया जा सके.

Activity इन मामलों में शुरू नहीं होगा:

  • इस एपीआई को कॉल करने वाला ऐप्लिकेशन, बैकग्राउंड में चल रहा है.
  • पास किया गया sdkActivityToken, Activity के अनुरोध से मैप नहीं करता उस SDK टूल का इस्तेमाल करें जिसने कॉलर ऐप्लिकेशन के साथ इसे शेयर किया था.
  • sdkActivityToken को शेयर करने वाले SDK टूल ने इसके लिए अनुरोध हटा दिया है Activity.
  • सैंडबॉक्स Activity पहले ही बनाया जा चुका है.

पैरामीटर
fromActivity Activity: Activity का इस्तेमाल नया सैंडबॉक्स Activity शुरू करने के लिए किया जाएगा. इसके लिए, Activity#startActivity(Intent) को इसके ख़िलाफ़ कॉल किया जाएगा. यह मान null नहीं हो सकता.

sdkActivityToken IBinder: यह ऐसा आइडेंटिफ़ायर है जिसे Activity का अनुरोध करने वाला SDK टूल शेयर करता है. यह मान null नहीं हो सकता.

अनलोडSdk

एपीआई लेवल 34 में जोड़ा गया
विज्ञापन सेवाएं एक्सटेंशन 4 में भी जोड़ा गया
public void unloadSdk (String sdkName)

उस SDK टूल को अनलोड करता है जिसे कॉलर के ज़रिए पहले लोड किया जा चुका है.

इसकी कोई गारंटी नहीं है कि इस SDK टूल के लिए तय की गई मेमोरी तुरंत खाली हो जाएगी. सभी requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) पर बाद के कॉल दिए गए sdkName के लिए विफल हो जाएगा.

इस एपीआई को सिर्फ़ तब कॉल किया जा सकता है, जब कॉलर फ़ोरग्राउंड में चल रहा हो. बैकग्राउंड में इस्तेमाल होने पर, SecurityException फेंकी जाएगी.

पैरामीटर
sdkName String: उस SDK टूल का नाम जिसे अनलोड किया जाना है. यह मान null नहीं हो सकता.

अपंजीकृत ऐप्लिकेशन के मालिकाना हक वालाSdkSandbox इंटरफ़ेस

public void unregisterAppOwnedSdkSandboxInterface (String name)

यह ऐप्लिकेशन की प्रोसेस के लिए, ERROR(/AppOwnedSdkSandboxInterfaces) का रजिस्ट्रेशन रद्द करता है.

पैरामीटर
name String: वह नाम जिसके तहत AppProprietarySdkSandboxInterface रजिस्टर किया गया था. यह मान null नहीं हो सकता.