ผู้จัดการแซนด์บ็อกซ์ 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 |