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