مدير SdkSandboxManager

public final class SdkSandboxManager
extends Object

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


توفّر واجهات برمجة التطبيقات لتحميل SDKs إلى عملية وضع الحماية لحزمة تطوير البرامج (SDK) والتفاعل معها.

وضع حماية SDK هو عملية جافا يتم تشغيلها في نطاق معرّف مستخدم منفصل. يمكن أن يكون لكل تطبيق عملية وضع الحماية لحزمة تطوير البرامج (SDK) خاصة به.

يجب أن يذكر التطبيق أولاً حِزم SDK التي يعتمد عليها في ملف البيان باستخدام العلامة <uses-sdk-library>. قد لا تحمِّل التطبيقات سوى حِزم 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.getHostToken() بعد إضافة SurfaceView إلى التدرّج الهرمي للعرض.

String EXTRA_SURFACE_PACKAGE

اسم المفتاح في الحزمة الذي يتم تمريره إلى دالة onResult في OutcomeReceiver وهو حقل 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

لا يتم تحميل حزمة تطوير البرامج (SDK) عند طلب SurfacePackage.

int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

عملية وضع الحماية لحزمة SDK غير متاحة.

String SDK_SANDBOX_SERVICE

استخدِم هذه السمة مع Context#getSystemService(String) لاسترداد SdkSandboxManager للتفاعل مع حِزم 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 التلقائي للتطبيق إلى وضع الحماية على حزمة SDK.

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

يتم تحميل حزمة تطوير البرامج (SDK) في عملية JavaScript لحماية حزمة تطوير البرامج (SDK).

void registerAppOwnedSdkSandboxInterface(AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

يسجِّل AppOwnedSdkSandboxInterface لعملية التطبيق.

void removeSdkSandboxProcessDeathCallback(SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

لإزالة SdkSandboxProcessDeathCallback الذي سبق أن تمت إضافته باستخدام addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.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)

بدء Activity في وضع الحماية لحزمة SDK

void unloadSdk(String sdkName)

إلغاء تحميل حزمة تطوير برامج (SDK) حمَّلها المتصل في السابق.

void unregisterAppOwnedSdkSandboxInterface(String name)

يؤدي هذا الإجراء إلى إلغاء تسجيل "ERROR(/AppOwnedSdkSandboxInterfaces)" في معالجة أحد التطبيقات.

الطرق المكتسبة

الثوابت

EXTRA_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"

EXTRA_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"

EXTRA_HOST_TOKEN

public static final String EXTRA_HOST_TOKEN

اسم المفتاح الذي سيتم استخدامه في حقول الحزمة لـ requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)، يجب أن تمثّل قيمته الرمز المميز الذي يعرضه SurfaceView.getHostToken() بعد إضافة SurfaceView إلى التدرّج الهرمي للعرض. يتم قبول القيمة غير الفارغة فقط لتفعيل إعداد تقارير ANR.

القيمة الثابتة: "android.app.sdksandbox.extra.HOST_TOKEN"

EXTRA_SURFACE_PACKAGE

public static final String EXTRA_SURFACE_PACKAGE

اسم المفتاح في الحزمة الذي يتم تمريره إلى دالة onResult في OutcomeReceiver وهو حقل requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)، وتقدم قيمته SurfacePackage المطلوب.

القيمة الثابتة: "android.app.sdksandbox.extra.SURFACE_PACKAGE"

EXTRA_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).

يشير هذا إلى أنّ تطبيق العميل حاول إعادة تحميل حزمة تطوير البرامج (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)

LOAD_SDK_NOT_FOUND

public static final int LOAD_SDK_NOT_FOUND

لم يتم العثور على حزمة تطوير البرامج (SDK).

يشير هذا إلى أنّ تطبيق العميل حاول تحميل حزمة تطوير برامج (SDK) غير متوفّرة من خلال استدعاء loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver).

القيمة الثابتة: 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_DISABLED

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

لا يتم تحميل حزمة تطوير البرامج (SDK) عند طلب SurfacePackage.

يشير هذا إلى أنّ حزمة تطوير البرامج (SDK) المطلوبة SurfacePackage لم يتم تحميلها، إما بسبب توقف وضع الحماية أو لأنّه لم يتم تحميله في الأساس.

القيمة الثابتة: 701 (0x000002bd)

SDK_SANDBOX_PROCESS_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

استخدِم هذه السمة مع Context#getSystemService(String) لاسترداد SdkSandboxManager للتفاعل مع حِزم SDK التي تنتمي إلى تطبيق العميل هذا.

القيمة الثابتة: "sdk_sandbox"

SDK_SANDBOX_STATE_DISABLED

public static final int SDK_SANDBOX_STATE_DISABLED

تم إيقاف وضع الحماية لحزمة SDK.

تم إخفاء SdkSandboxManager واجهات برمجة تطبيقات. ستؤدي محاولات الاتصال بهم إلى UnsupportedOperationException.

القيمة الثابتة: 0 (0x00000000)

SDK_SANDBOX_STATE_ الموضّح_PROCESS_ISOLATION

public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

تم تفعيل وضع الحماية لحزمة SDK.

يمكن للتطبيق استخدام واجهات SdkSandboxManager API لتحميل SDKs، ويعتمد ذلك على عملية وضع الحماية المناسبة لحزمة 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() API.

لإيقاف مزامنة أي مفتاح تمت إضافته باستخدام واجهة برمجة التطبيقات هذه، استخدِم removeSyncedSharedPreferencesKeys(java.util.Set).

تتوقف المزامنة في حال إعادة تشغيل التطبيق، وعلى المستخدم استدعاء واجهة برمجة التطبيقات هذه مرة أخرى لإعادة إنشاء مجموعة المفاتيح للمزامنة.

ملاحظة: لا تتيح هذه الفئة استخدام البيانات في عمليات متعدّدة.

المعلّمات
keys Set: مجموعة المفاتيح التي ستتم مزامنتها مع Sandbox. لا يمكن أن تكون هذه القيمة null.

واجهات getAppOwnedSdkSandboxInterfaces

public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()

يجلب قائمة AppOwnedSdkSandboxInterface المسجَّلة في أحد التطبيقات.

الركلات المردودة
List<AppOwnedSdkSandboxInterface> قائمة فارغة في حال لم يتم العثور على CallInfo في الخريطة وإلّا فإنّ القائمة 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 التلقائي للتطبيق إلى وضع الحماية على حزمة SDK.

الركلات المردودة
Set<String> لا يمكن أن تكون هذه القيمة null.

تحميلloadSdk

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

يتم تحميل حزمة تطوير البرامج (SDK) في عملية JavaScript لحماية حزمة تطوير البرامج (SDK).

يحمِّل مكتبة SDK مع sdkName إلى عملية وضع الحماية لحزمة SDK بشكل غير متزامن. سيتم إشعار المتصل من خلال receiver.

يجب أن يعرِّف المتصل حاليًا العلامة SDKs التي تعتمد عليها في ملف البيان باستخدام العلامة <uses-sdk-library>. قد لا يتمكّن المتصل من تحميل إلا SDKs، ويعتمد ذلك على وضع الحماية في حزمة SDK.

عند تحميل تطبيق العميل لأول حزمة تطوير برامج (SDK)، سيتم إنشاء عملية وضع حماية جديدة لحزمة تطوير البرامج (SDK). إذا تم إنشاء وضع حماية لتطبيق العميل، سيتم تحميل حِزم SDK إضافية في وضع الحماية نفسه.

قد لا يتم استدعاء واجهة برمجة التطبيقات هذه إلا أثناء تشغيل المتصل في المقدمة. ستؤدي المكالمات الواردة من الخلفية إلى عرض رقم LoadSdkException في receiver.

المعلّمات
sdkName String: اسم حزمة تطوير البرامج (SDK) المطلوب تحميلها لا يمكن أن تكون هذه القيمة null.

params Bundle: مَعلمات إضافية يجب تمريرها إلى حزمة تطوير البرامج (SDK) في شكل Bundle على النحو المتفق عليه بين العميل وحزمة تطوير البرامج (SDK). لا يمكن أن تكون هذه القيمة null.

executor Executor: Executor المطلوب استدعاء المُستلِم عليه. لا يمكن أن تكون هذه القيمة null. يتم إرسال أحداث معاودة الاتصال والمستمعين من خلال Executor، ما يوفّر طريقة سهلة للتحكّم في سلسلة المحادثات المستخدَمة. لإرسال الأحداث من خلال سلسلة التعليمات الرئيسية في تطبيقك، يمكنك استخدام Context.getMainExecutor(). وبخلاف ذلك، يمكنك تقديم Executor توجّهها إلى سلسلة محادثات مناسبة.

receiver OutcomeReceiver: إما أن تتلقى SandboxedSdk عند تشغيل ناجح، أو LoadSdkException. لا يمكن أن تكون هذه القيمة null.

واجهة برمجة تطبيقات مملوكة وSdkSandboxInterface

public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

يسجِّل AppOwnedSdkSandboxInterface لعملية التطبيق.

في حال تسجيل AppOwnedSdkSandboxInterface باستخدام اسم واجهة تم تسجيلها سابقًا، سيتم عرض IllegalStateException.

يشير AppOwnedSdkSandboxInterface#getName() إلى اسم الواجهة.

المعلّمات
appOwnedSdkSandboxInterface AppOwnedSdkSandboxInterface: AppOwnedSdkSandboxInterface المراد تسجيلهما لا يمكن أن تكون هذه القيمة null.

إزالةSdkSandboxProcessDeathCallback

public void removeSdkSandboxProcessDeathCallback (SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

لإزالة SdkSandboxProcessDeathCallback الذي سبق أن تمت إضافته باستخدام addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback).

المعلّمات
callback SdkSandboxManager.SdkSandboxProcessDeathCallback: السمة SdkSandboxProcessDeathCallback التي تمت إضافتها في السابق باستخدام SdkSandboxManager#addSdkSandboxProcessDeathCallback(Executor, SdkSandboxProcessDeathCallback) لا يمكن أن تكون هذه القيمة null.

removeSyncedSharedPreferencesKeys

public void removeSyncedSharedPreferencesKeys (Set<String> keys)

يؤدي هذا الخيار إلى إزالة المفاتيح من مجموعة المفاتيح التي تمت إضافتها باستخدام "addSyncedSharedPreferencesKeys(java.util.Set)".

سيتم محو المفاتيح التي تمت إزالتها من وضع الحماية لحزمة تطوير البرامج (SDK) إذا سبق وتمت مزامنتها.

المعلّمات
keys Set: مجموعة من أسماء المفاتيح التي يجب عدم مزامنتها بعد الآن مع "وضع الحماية". لا يمكن أن تكون هذه القيمة null.

طلب SurfacePackage

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

تُرسِل طلبًا للحصول على حزمة سطح إلى حزمة تطوير البرامج (SDK).

بعد أن يتلقّى تطبيق العميل إشارة بشأن نجاح تحميل حزمة تطوير البرامج (SDK) ويضيف SurfaceView إلى التدرّج الهرمي لطريقة العرض، قد يطلب التطبيق SurfacePackage بشكل غير متزامن لعرض عرض من حزمة تطوير البرامج (SDK).

عندما تكون السمة 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.

قد لا يتم استدعاء واجهة برمجة التطبيقات هذه إلا أثناء تشغيل المتصل في المقدمة. ستؤدي المكالمات الواردة من الخلفية إلى عرض واجهة requestSurfacePackageException في receiver.

المعلّمات
sdkName String: اسم حزمة تطوير البرامج (SDK) التي تم تحميلها في وضع الحماية على حزمة SDK لا يمكن أن تكون هذه القيمة null.

params Bundle: المعلَمات التي يمرّرها تطبيق العميل إلى حزمة تطوير البرامج (SDK) لا يمكن أن تكون هذه القيمة null.

callbackExecutor Executor: Executor المطلوب استدعاء معاودة الاتصال عليه لا يمكن أن تكون هذه القيمة null. يتم إرسال أحداث معاودة الاتصال والمستمعين من خلال Executor، ما يوفّر طريقة سهلة للتحكّم في سلسلة المحادثات المستخدَمة. لإرسال الأحداث من خلال سلسلة التعليمات الرئيسية في تطبيقك، يمكنك استخدام Context.getMainExecutor(). وبخلاف ذلك، يمكنك تقديم Executor توجّهها إلى سلسلة محادثات مناسبة.

receiver OutcomeReceiver: يؤدي هذا الإجراء إلى عرض الخطأ Bundle عند نجاح الإجراء الذي سيحتوي على المفتاح SdkSandboxManager#EXTRA_SURFACE_PACKAGE مع القيمة SurfacePackage أو عرض RequestSurfacePackageException عند تعذُّر إتمام العملية. لا يمكن أن تكون هذه القيمة null.

الرميات
IllegalArgumentException إذا لم يتضمّن params جميع المفاتيح المطلوبة

StartSdkSandboxActivity

public void startSdkSandboxActivity (Activity fromActivity, 
                IBinder sdkActivityToken)

بدء Activity في وضع الحماية لحزمة SDK

ستبدأ هذه الدالة في بدء Activity جديد في المهمة نفسها من fromActivity التي تم تمريرها، وتمررها إلى حزمة تطوير البرامج (SDK) التي شاركت sdkActivityToken التي تم تمريرها والتي تحدد طلبًا من حزمة تطوير البرامج (SDK) هذه لحساب Activity هذا.

لن يبدأ "Activity" في الحالات التالية:

  • التطبيق الذي يطلب واجهة برمجة التطبيقات هذه يظهر في الخلفية.
  • لا يتم ربط sdkActivityToken الذي تم تمريره بطلب للحصول على Activity من حزمة تطوير البرامج (SDK) التي شاركته مع تطبيق المتّصل.
  • أزالت حزمة تطوير البرامج (SDK) التي شاركت ملف sdkActivityToken الذي تم تمريره طلبها بخصوص Activity.
  • تم إنشاء وضع الحماية Activity من قبل.

المعلّمات
fromActivity Activity: سيتم استخدام Activity لبدء وضع الحماية الجديد Activity من خلال استدعاء Activity#startActivity(Intent) مقابله. لا يمكن أن تكون هذه القيمة null.

sdkActivityToken IBinder: المعرّف الذي تشاركه حزمة تطوير البرامج (SDK) والذي يطلب Activity. لا يمكن أن تكون هذه القيمة 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.

UnregisterAppOwnedSdkSandboxInterface

public void unregisterAppOwnedSdkSandboxInterface (String name)

يؤدي هذا الإجراء إلى إلغاء تسجيل "ERROR(/AppOwnedSdkSandboxInterfaces)" في معالجة أحد التطبيقات.

المعلّمات
name String: الاسم الذي تم به تسجيل AppOwnedSdkSandboxInterface. لا يمكن أن تكون هذه القيمة null.