एसडीकेसैंडबॉक्समैनेजर
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 टूल के सैंडबॉक्स की मौत को ट्रैक करने से जुड़ा कॉलबैक. |
सार्वजनिक तरीके | |
---|---|
void
|
addSdkSandboxProcessDeathCallback(Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)
इससे एक कॉलबैक जोड़ा जाता है, जो SDK टूल सैंडबॉक्स लाइफ़साइकल इवेंट के लिए रजिस्टर किया जाता है. जैसे, SDK टूल सैंडबॉक्स मौत. |
void
|
addSyncedSharedPreferencesKeys(Set<String> keys)
ऐप्लिकेशन के डिफ़ॉल्ट |
List<AppOwnedSdkSandboxInterface>
|
getAppOwnedSdkSandboxInterfaces()
किसी ऐप्लिकेशन के लिए रजिस्टर की गई |
List<SandboxedSdk>
|
getSandboxedSdks()
इससे सैंडबॉक्स में लोड किए गए SDK टूल के बारे में जानकारी मिलती है. |
static
int
|
getSdkSandboxState()
SDK टूल की सैंडबॉक्स सुविधा की उपलब्धता की मौजूदा स्थिति दिखाता है. |
Set<String>
|
getSyncedSharedPreferencesKeys()
सेट की गई उन कुंजियों को वापस लौटाता है जिन्हें ऐप्लिकेशन के डिफ़ॉल्ट |
void
|
loadSdk(String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdk, LoadSdkException> receiver)
SDK टूल सैंडबॉक्स जावा प्रोसेस में SDK टूल लोड करता है. |
void
|
registerAppOwnedSdkSandboxInterface(AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)
ऐप्लिकेशन से जुड़ी प्रोसेस के लिए, |
void
|
removeSdkSandboxProcessDeathCallback(SdkSandboxManager.SdkSandboxProcessDeathCallback callback)
|
void
|
removeSyncedSharedPreferencesKeys(Set<String> keys)
अगर हटाई गई कुंजियां पहले से सिंक की गई हैं, तो SDK टूल के सैंडबॉक्स से उन्हें मिटा दिया जाएगा. |
void
|
requestSurfacePackage(String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver<Bundle, RequestSurfacePackageException> receiver)
SDK टूल को सरफ़ेस पैकेज के लिए अनुरोध भेजता है. |
void
|
startSdkSandboxActivity(Activity fromActivity, IBinder sdkActivityToken)
SDK टूल के सैंडबॉक्स में |
void
|
unloadSdk(String sdkName)
उस SDK टूल को अनलोड करता है जिसे कॉलर के ज़रिए पहले लोड किया जा चुका है. |
void
|
unregisterAppOwnedSdkSandboxInterface(String name)
यह ऐप्लिकेशन की प्रोसेस के लिए, |
इनहेरिट किए गए तरीके | |
---|---|
स्थिरांक
अतिरिक्त_DISPLAY_ID
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
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
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
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
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
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
public static final int LOAD_SDK_INTERNAL_ERROR
SDK टूल लोड करते समय कोई अंदरूनी गड़बड़ी हुई.
इससे पता चलता है कि क्लाइंट से कॉल लागू करते समय कोई सामान्य अंदरूनी गड़बड़ी हुई है का इस्तेमाल करें.
कॉन्स्टेंट वैल्यू: 500 (0x000001f4)
लोड_SDK_NOT_FOUND
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
public static final int LOAD_SDK_SDK_DEFINED_ERROR
लोड होने के बाद SDK टूल की गड़बड़ी.
इससे पता चलता है कि पोस्ट-लोड शुरू करने के दौरान, SDK टूल में कोई गड़बड़ी हुई है. कॉन्टेंट बनाने
इस बारे में जानकारी, LoadSdkException
में लौटाए गए बंडल में देखी जा सकती है. इसके लिए:
OutcomeReceiver
, SdkSandboxManager#loadSdk
में पास हुआ.
कॉन्स्टेंट वैल्यू: 102 (0x00000066)
LOAD_SDK_SDK_SANDBOX_ प्रमोशनD
public static final int LOAD_SDK_SDK_SANDBOX_DISABLED
SDK टूल का सैंडबॉक्स बंद है.
इससे पता चलता है कि SDK टूल का सैंडबॉक्स बंद है. अगर इसके बाद SDK टूल लोड करने की कोशिश की जाती है, यह बूट भी विफल हो जाएगा.
कॉन्स्टेंट वैल्यू: 103 (0x00000067)
REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR
public static final int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR
SurfacePackage
का अनुरोध करते समय अंदरूनी गड़बड़ी हुई.
यह दिखाता है कि एक सामान्य अंदरूनी गड़बड़ी हुई है.
SurfacePackage
.
कॉन्स्टेंट वैल्यू: 700 (0x000002bc)
REQUEST_SURFACE_PACKAGE_SDK टूल_NOT_LOADED
public static final int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED
SurfacePackage
का अनुरोध करने पर, SDK टूल लोड नहीं होता है.
इससे पता चलता है कि जिस SDK टूल के लिए SurfacePackage
का अनुरोध किया जा रहा है वह SDK टूल
लोड हो गया, क्योंकि सैंडबॉक्स बंद हो गया या वह पहली बार में लोड ही नहीं हुआ.
कॉन्स्टेंट वैल्यू: 701 (0x000002bd)
SDK_SANDBOX_IMAGES_NOT_Available
public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE
SDK टूल की सैंडबॉक्स प्रोसेस उपलब्ध नहीं है.
इससे पता चलता है कि SDK टूल की सैंडबॉक्स प्रोसेस उपलब्ध नहीं है. किसी प्रोसेस के बंद होने की वजह से, डिसकनेक्ट किया गया है या पहले ही नहीं बनाया गया है.
कॉन्स्टेंट वैल्यू: 503 (0x000001f7)
SDK_SANDBOX_SERVICE
public static final String SDK_SANDBOX_SERVICE
SdkSandboxManager
को वापस पाने के लिए, Context#getSystemService(String)
के साथ इस्तेमाल करें
इस क्लाइंट ऐप्लिकेशन से संबंधित SDK टूल के साथ इंटरैक्ट करने के लिए.
कॉन्स्टेंट वैल्यू: "SDK_सैंडबॉक्स"
SDK_SANDBOX_STATUS_ सुविधाओं को बंद करें
public static final int SDK_SANDBOX_STATE_DISABLED
SDK टूल का सैंडबॉक्स बंद है.
SdkSandboxManager
एपीआई छिपे हुए हैं. उन्हें कॉल करने की कोशिश करने पर UnsupportedOperationException
मिलेंगे.
कॉन्स्टेंट वैल्यू: 0 (0x00000000)
SDK_SANDBOX_स्टेट_चालू_ निलंबन_ISOLATION
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION
SDK टूल का सैंडबॉक्स चालू है.
ऐप्लिकेशन, SDKs
को लोड करने के लिए SdkSandboxManager
एपीआई का इस्तेमाल कर सकता है. यह इस पर निर्भर करता है
संबंधित SDK टूल सैंडबॉक्स प्रोसेस.
कॉन्स्टेंट वैल्यू: 2 (0x00000002)
सार्वजनिक तरीके
addSdkSandboxProcessDeathCallback
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
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
public List<SandboxedSdk> getSandboxedSdks ()
इससे सैंडबॉक्स में लोड किए गए SDK टूल के बारे में जानकारी मिलती है.
रिटर्न | |
---|---|
List<SandboxedSdk> |
SandboxedSdk की सूची जिसमें हाल ही में लोड किए गए सभी SDK टूल शामिल हैं.
यह मान null नहीं हो सकता. |
getSdkSandboxState
public static int getSdkSandboxState ()
SDK टूल की सैंडबॉक्स सुविधा की उपलब्धता की मौजूदा स्थिति दिखाता है.
रिटर्न | |
---|---|
int |
मान SDK_SANDBOX_STATE_DISABLED या SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION है |
getSyncedSharedPreferencesKeys
public Set<String> getSyncedSharedPreferencesKeys ()
सेट की गई उन कुंजियों को वापस लौटाता है जिन्हें ऐप्लिकेशन के डिफ़ॉल्ट SharedPreferences
से इस पर सिंक किया जा रहा है
को भी लोड किया जा सकता है.
रिटर्न | |
---|---|
Set<String> |
यह मान null नहीं हो सकता. |
लोड करें
public void loadSdk (String sdkName, Bundle params, Executor executor, OutcomeReceiver<SandboxedSdk, LoadSdkException> 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
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
public void removeSyncedSharedPreferencesKeys (Set<String> keys)
addSyncedSharedPreferencesKeys(java.util.Set)
का इस्तेमाल करके जोड़े गए कुंजियों के सेट से कुंजियां हटाती हैं
अगर हटाई गई कुंजियां पहले से सिंक की गई हैं, तो SDK टूल के सैंडबॉक्स से उन्हें मिटा दिया जाएगा.
पैरामीटर | |
---|---|
keys |
Set : उन कुंजी नामों का सेट जो अब सैंडबॉक्स से सिंक नहीं किए जाने चाहिए.
यह मान null नहीं हो सकता. |
सरफ़ेस पैकेज का अनुरोध करें
public void requestSurfacePackage (String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver<Bundle, RequestSurfacePackageException> 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गतिविधि
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
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 नहीं हो सकता. |