ผู้จัดการแซนด์บ็อกซ์ SdkSandbox
public final class SdkSandboxManager
extends Object
java.lang.Object | |
↳ | android.app.sdksandbox.SdkSandboxManager |
มี API ที่จะโหลด SDKs
ลงใน แซนด์บ็อกซ์ของ SDK แล้วโต้ตอบกับ SDK
แซนด์บ็อกซ์ SDK เป็นกระบวนการ Java ที่ทำงานในช่วง UID ที่แยกต่างหาก แต่ละแอปอาจมี SDK ของตัวเอง ของกระบวนการแซนด์บ็อกซ์
แอปต้องประกาศ SDK ที่จำเป็นต้องใช้ในไฟล์ Manifest ก่อนโดยใช้แท็ก <uses-sdk-library>
แอปอาจโหลดเฉพาะ SDK ที่แอปต้องใช้ในแซนด์บ็อกซ์ของ SDK เท่านั้น
สรุป
ชั้นเรียนที่ซ้อนกัน | |
---|---|
interface | SdkSandboxManager.SdkSandboxProcessDeathCallback การเรียกกลับสำหรับการติดตามเหตุการณ์การเสียชีวิตแซนด์บ็อกซ์ของ SDK |
วิธีการสาธารณะ | |
---|---|
void | addSdkSandboxProcessDeathCallback(Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback) เพิ่ม 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 ในกระบวนการ Java แซนด์บ็อกซ์ 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) เริ่ม |
void | unloadSdk(String sdkName) ยกเลิกการโหลด SDK ที่เคยโหลดโดยผู้โทรก่อนหน้านี้ |
void | unregisterAppOwnedSdkSandboxInterface(String name) ยกเลิกการลงทะเบียน |
วิธีการที่รับมา | |
---|---|
ค่าคงที่
EXTRA_DISPLAY_ID
public static final String EXTRA_DISPLAY_ID
ชื่อของคีย์ที่จะใช้ในช่อง Bundle ของ 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
ชื่อของคีย์ที่จะใช้ในช่อง Bundle ของ requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)
ค่าของคีย์ควรกำหนดความสูงที่เป็นจำนวนเต็มของ SurfacePackage
ในหน่วยพิกเซล
มูลค่าคงที่: "android.app.sdksandbox.extra.HEIGHT_IN_PIXELS"
โทเค็นภายนอก
public static final String EXTRA_HOST_TOKEN
ชื่อของคีย์ที่จะใช้ในช่อง Bundle ของ requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)
ค่าของคีย์ควรแสดงโทเค็นที่ SurfaceView.getHostToken()
แสดงผลเมื่อ SurfaceView
ได้รับการ ในลำดับชั้นการแสดงผล ระบบยอมรับเฉพาะค่าที่ไม่ใช่ Null ในการเปิดใช้การรายงาน ANR
มูลค่าคงที่: "android.app.sdksandbox.extra.HOST_TOKEN"
แพ็กเกจเสริมพื้นผิว
public static final String EXTRA_SURFACE_PACKAGE
ชื่อของคีย์ใน Bundle ที่ส่งไปยังฟังก์ชัน 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
ชื่อของคีย์ที่จะใช้ในช่อง Bundle ของ 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 พบข้อผิดพลาดระหว่างการเริ่มต้นหลังการโหลด รายละเอียดของข้อมูลนี้ได้มาจาก Bundle ที่ส่งคืนใน 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
public static final int SDK_SANDBOX_STATE_DISABLED
ปิดใช้แซนด์บ็อกซ์ SDK อยู่
มี SdkSandboxManager
API ซ่อนอยู่ การพยายามโทรหาหมายเลขดังกล่าวจะส่งผลให้UnsupportedOperationException
มูลค่าคงที่: 0 ครั้ง (0x00000000)
SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION
เปิดใช้แซนด์บ็อกซ์ SDK แล้ว
แอปสามารถใช้ API ของ SdkSandboxManager
เพื่อโหลด SDKs
ซึ่งขึ้นอยู่กับ กระบวนการแซนด์บ็อกซ์ของ SDK ที่เกี่ยวข้อง
มูลค่าคงที่: 2 ครั้ง (0x00000002)
วิธีการสาธารณะ
addSdkSandboxProcessDeathCallback
public void addSdkSandboxProcessDeathCallback (Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)
เพิ่ม Callback ที่ลงทะเบียนสำหรับเหตุการณ์ในวงจรของแซนด์บ็อกซ์ SDK เช่น แซนด์บ็อกซ์ของ SDK การเสียชีวิต หากยังไม่มีการสร้างแซนด์บ็อกซ์เมื่อมีการเรียกใช้ คำขอจะ ไว้จนกว่าจะมีการสร้างแซนด์บ็อกซ์ โดยจะเปิดใช้งานสำหรับแซนด์บ็อกซ์นั้น ณ จุดนั้น หลายสกุลเงิน สามารถเพิ่มการเรียกกลับเพื่อตรวจหาการเสียชีวิตได้ และจะไม่ถูกลบเมื่อแซนด์บ็อกซ์ตาย
พารามิเตอร์ | |
---|---|
callbackExecutor | Executor : Executor ที่จะเรียกใช้ Callback ค่านี้ต้องไม่เป็น null ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้ Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่ ในการส่งกิจกรรมผ่านชุดข้อความหลักของ คุณสามารถใช้ Context.getMainExecutor() หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
callback | SdkSandboxManager.SdkSandboxProcessDeathCallback : SdkSandboxProcessDeathCallback ซึ่งจะได้รับแซนด์บ็อกซ์ SDK ในวงจร ค่านี้ต้องไม่เป็น null |
addSyncedSharedPreferencesKeys
public void addSyncedSharedPreferencesKeys (Set<String> keys)
เพิ่มคีย์ในชุดคีย์ที่ซิงค์จาก SharedPreferences
เริ่มต้นของแอปไปยัง SDK แซนด์บ็อกซ์
ข้อมูลที่ซิงค์จะพร้อมให้ SDK อ่านโดยใช้ SdkSandboxController.getClientSharedPreferences()
API
หากต้องการหยุดซิงค์คีย์ใดก็ตามที่เพิ่มโดยใช้ API นี้ ให้ใช้ removeSyncedSharedPreferencesKeys(java.util.Set)
การซิงค์จะหยุดทำงานหากแอปรีสตาร์ทและผู้ใช้ต้องเรียกใช้ API นี้อีกครั้งเพื่อสร้างพูลใหม่ สำหรับการซิงค์
หมายเหตุ: คลาสนี้ไม่รองรับการใช้งานในหลายกระบวนการ
พารามิเตอร์ | |
---|---|
keys | Set : ชุดคีย์ที่จะซิงค์กับแซนด์บ็อกซ์ ค่านี้ต้องไม่เป็น null |
อินเทอร์เฟซ getAppเป็นเจ้าของโดเมนSdkSandbox
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<SandboxedSdk, LoadSdkException> receiver)
โหลด SDK ในกระบวนการ Java แซนด์บ็อกซ์ SDK
โหลดไลบรารี SDK ด้วย sdkName
ไปยังกระบวนการแซนด์บ็อกซ์ SDK แบบไม่พร้อมกัน ผู้โทรจะได้รับการแจ้งเตือนผ่าน receiver
ผู้โทรควรประกาศ SDKs
อยู่แล้วว่าจะขึ้นอยู่กับในไฟล์ Manifest โดยใช้แท็ก <uses-sdk-library>
ผู้โทรอาจโหลดเฉพาะ SDKs
เท่านั้นโดยขึ้นอยู่กับ SDK แซนด์บ็อกซ์
เมื่อแอปพลิเคชันไคลเอ็นต์โหลด SDK แรก กระบวนการแซนด์บ็อกซ์ SDK ใหม่จะ สร้าง แล้ว ถ้ามีการสร้างแซนด์บ็อกซ์สำหรับแอปพลิเคชันไคลเอ็นต์แล้ว SDK เพิ่มเติม จะถูกโหลดลงในแซนด์บ็อกซ์เดียวกัน
สามารถเรียก API นี้ได้ในขณะที่ผู้โทรทำงานอยู่ในเบื้องหน้าเท่านั้น สายจาก พื้นหลังจะส่งผลให้แสดงผล LoadSdkException
ใน receiver
พารามิเตอร์ | |
---|---|
sdkName | String : ชื่อของ SDK ที่จะโหลด ค่านี้ต้องไม่เป็น null |
params | Bundle : พารามิเตอร์เพิ่มเติมที่จะส่งไปให้ SDK ในรูปแบบ Bundle ตามที่ตกลงกันระหว่างลูกค้าและ SDK ค่านี้ต้องไม่เป็น null |
executor | Executor : Executor ที่จะเรียกใช้ตัวรับ ค่านี้ต้องไม่เป็น null ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้ Executor มอบวิธีง่ายๆ ในการควบคุมชุดข้อความที่ ในการส่งกิจกรรมผ่านชุดข้อความหลักของ คุณสามารถใช้ Context.getMainExecutor() หรือระบุ Executor ที่ส่งไปยังชุดข้อความที่เหมาะสม |
receiver | OutcomeReceiver : ตัวเลือกนี้จะได้รับ SandboxedSdk เมื่อเรียกใช้สำเร็จ หรือ LoadSdkException ค่านี้ต้องไม่เป็น null |
RegisterAppOwnerSdkSandboxInterface
public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)
ลงทะเบียน AppOwnedSdkSandboxInterface
สำหรับกระบวนการของแอป
การจดทะเบียน AppOwnedSdkSandboxInterface
ที่มีชื่อเดียวกันกับก่อนหน้านี้ ของอินเทอร์เฟซที่ลงทะเบียนแล้วจะแสดงผลเป็น IllegalStateException
AppOwnedSdkSandboxInterface#getName()
หมายถึงชื่อของอินเทอร์เฟซ
พารามิเตอร์ | |
---|---|
appOwnedSdkSandboxInterface | AppOwnedSdkSandboxInterface : AppownerSdkSandboxInterface ที่จะจดทะเบียน ค่านี้ต้องไม่เป็น null |
removeSdkSandboxProcessDeathCallback
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 |
แพ็กเกจ requestSurface
public void requestSurfacePackage (String sdkName, Bundle params, Executor callbackExecutor, OutcomeReceiver<Bundle, RequestSurfacePackageException> 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
สามารถเรียก API นี้ได้ในขณะที่ผู้โทรทำงานอยู่ในเบื้องหน้าเท่านั้น สายจาก จะทำให้ระบบแสดงผล RequestSurfacePackageException ใน receiver
พารามิเตอร์ | |
---|---|
sdkName | String : ชื่อของ SDK ที่โหลดลงในแซนด์บ็อกซ์ SDK ค่านี้ต้องไม่เป็น null |
params | Bundle : พารามิเตอร์ที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง SDK ค่านี้ต้องไม่เป็น null |
callbackExecutor | Executor : Executor ที่จะเรียกใช้ Callback ค่านี้ต้องไม่เป็น null ระบบจะส่งเหตุการณ์ Callback และ Listener ผ่านสิ่งนี้ 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
จะไม่เริ่มต้นในกรณีต่อไปนี้
- แอปที่เรียกใช้ API นี้อยู่ในเบื้องหลัง
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
ที่ระบุจะล้มเหลว
สามารถเรียก API นี้ได้ในขณะที่ผู้โทรทำงานอยู่ในเบื้องหน้าเท่านั้น สายจาก พื้นหลังจะทำให้มีการส่ง SecurityException
พารามิเตอร์ | |
---|---|
sdkName | String : ชื่อ SDK ที่จะยกเลิกการโหลด ค่านี้ต้องไม่เป็น null |
ยกเลิกการลงทะเบียนแอปเป็นเจ้าของSdkSandboxInterface
public void unregisterAppOwnedSdkSandboxInterface (String name)
ยกเลิกการลงทะเบียน ERROR(/AppOwnedSdkSandboxInterfaces)
สำหรับกระบวนการของแอป
พารามิเตอร์ | |
---|---|
name | String : ชื่อที่ใช้จดทะเบียน AppOWNERSdkSandboxInterface ค่านี้ต้องไม่เป็น null |