Trình quản lý SdkSandbox

public final class SdkSandboxManager
extends Object

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


Cung cấp API để tải SDKs vào Quy trình hộp cát SDK, sau đó tương tác với chúng.

Hộp cát SDK là một quy trình java chạy trong một dải ô uid riêng biệt. Mỗi ứng dụng có thể có SDK riêng hộp cát.

Trước tiên, ứng dụng cần khai báo các SDK mà nó phụ thuộc trong tệp kê khai bằng thẻ <uses-sdk-library>. Các ứng dụng chỉ có thể tải SDK mà chúng phụ thuộc vào hộp cát SDK.

Tóm tắt

Lớp lồng ghép

interface SdkSandboxManager.SdkSandboxProcessDeathCallback

Lệnh gọi lại để theo dõi trường hợp hộp cát SDK sự kiện bị buộc tắt. 

Hằng số

String EXTRA_DISPLAY_ID

Tên của khoá sẽ dùng trong các trường Bundle của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định mã nhận dạng số nguyên của logic màn hình để cho thấy SurfacePackage.

String EXTRA_HEIGHT_IN_PIXELS

Tên khoá sẽ dùng trong trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định chiều cao số nguyên của SurfacePackage tính bằng pixel.

String EXTRA_HOST_TOKEN

Tên khoá sẽ được dùng trong các trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải hiển thị mã thông báo do SurfaceView.getHostToken() trả về sau khi SurfaceView được được thêm vào hệ phân cấp khung hiển thị.

String EXTRA_SURFACE_PACKAGE

Tên của khoá trong Gói được truyền đến hàm onResult của OutcomeReceiver (là trường của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)), giá trị của khoá này sẽ biểu thị SurfacePackage được yêu cầu.

String EXTRA_WIDTH_IN_PIXELS

Tên khoá sẽ dùng trong trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định chiều rộng số nguyên của SurfacePackage tính bằng pixel.

int LOAD_SDK_ALREADY_LOADED

SDK đã được tải.

int LOAD_SDK_INTERNAL_ERROR

Đã xảy ra lỗi nội bộ khi tải SDK.

int LOAD_SDK_NOT_FOUND

Không tìm thấy SDK.

int LOAD_SDK_SDK_DEFINED_ERROR

Lỗi SDK sau khi tải.

int LOAD_SDK_SDK_SANDBOX_DISABLED

Hộp cát SDK bị tắt.

int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

Đã xảy ra lỗi nội bộ khi yêu cầu SurfacePackage.

int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SDK không được tải khi yêu cầu SurfacePackage.

int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

Không có quy trình hộp cát SDK.

String SDK_SANDBOX_SERVICE

Sử dụng với Context#getSystemService(String) để truy xuất SdkSandboxManager để tương tác với các SDK thuộc ứng dụng này.

int SDK_SANDBOX_STATE_DISABLED

Hộp cát SDK bị tắt.

int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

Hộp cát SDK được bật.

Phương thức công khai

void addSdkSandboxProcessDeathCallback(Executor callbackExecutor, SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Thêm lệnh gọi lại được đăng ký cho các sự kiện trong vòng đời hộp cát SDK, chẳng hạn như hộp cát SDK chết.

void addSyncedSharedPreferencesKeys(Set<String> keys)

Thêm khoá vào tập hợp các khoá đang được đồng bộ hoá từ SharedPreferences mặc định của ứng dụng với SDK hộp cát.

List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces()

Tìm nạp danh sách AppOwnedSdkSandboxInterface đã đăng ký cho một ứng dụng

List<SandboxedSdk> getSandboxedSdks()

Tìm nạp thông tin về các SDK đã tải trong hộp cát.

static int getSdkSandboxState()

Trả về trạng thái cung cấp hiện tại của tính năng hộp cát SDK.

Set<String> getSyncedSharedPreferencesKeys()

Trả về các khoá đã đặt đang được đồng bộ hoá từ SharedPreferences mặc định của ứng dụng đến hộp cát SDK.

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

Tải SDK trong quy trình java hộp cát SDK.

void registerAppOwnedSdkSandboxInterface(AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

Đăng ký AppOwnedSdkSandboxInterface cho một quy trình ứng dụng.

void removeSdkSandboxProcessDeathCallback(SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Xoá SdkSandboxProcessDeathCallback từng được thêm vào bằng addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback)

void removeSyncedSharedPreferencesKeys(Set<String> keys)

Xoá khoá khỏi tập hợp khoá đã được thêm bằng addSyncedSharedPreferencesKeys(java.util.Set)

Các khoá bị xoá sẽ bị xoá khỏi hộp cát SDK nếu chúng đã được đồng bộ hoá.

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

Gửi yêu cầu về gói nền tảng đến SDK.

void startSdkSandboxActivity(Activity fromActivity, IBinder sdkActivityToken)

Bắt đầu một Activity trong hộp cát SDK.

void unloadSdk(String sdkName)

Gỡ tải SDK đã được phương thức gọi tải trước đó.

void unregisterAppOwnedSdkSandboxInterface(String name)

Huỷ đăng ký ERROR(/AppOwnedSdkSandboxInterfaces) cho một quy trình ứng dụng.

Các phương thức kế thừa

Hằng số

Hàm EXTRA_DISPLAY_ID

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String EXTRA_DISPLAY_ID

Tên của khoá sẽ dùng trong các trường Bundle của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định mã nhận dạng số nguyên của logic màn hình để cho thấy SurfacePackage.

Giá trị không đổi: "android.app.sdksandbox.extra.DISPLAY_ID"

THÊM_HEIGHT_IN_PIXELS

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String EXTRA_HEIGHT_IN_PIXELS

Tên khoá sẽ dùng trong trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định chiều cao số nguyên của SurfacePackage tính bằng pixel.

Giá trị không đổi: "android.app.sdksandbox.extra.HEIGHT_IN_PIXELS"

Hàm EXTRA_HOST_TOKEN

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String EXTRA_HOST_TOKEN

Tên khoá sẽ được dùng trong các trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải hiển thị mã thông báo do SurfaceView.getHostToken() trả về sau khi SurfaceView được được thêm vào hệ phân cấp khung hiển thị. Chỉ chấp nhận giá trị không rỗng để bật tính năng báo cáo lỗi ANR.

Giá trị không đổi: "android.app.sdksandbox.extra.HOST_TOKEN"

GÓI_BỀN_BẢN_BỔ_DƯỠNG

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String EXTRA_SURFACE_PACKAGE

Tên của khoá trong Gói được truyền đến hàm onResult của OutcomeReceiver (là trường của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver)), giá trị của khoá này sẽ biểu thị SurfacePackage được yêu cầu.

Giá trị không đổi: "android.app.sdksandbox.extra.SURFACE_PACKAGE"

THÊM_WIDTH_IN_PIXELS

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String EXTRA_WIDTH_IN_PIXELS

Tên khoá sẽ dùng trong trường Gói của requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver), giá trị của khoá phải xác định chiều rộng số nguyên của SurfacePackage tính bằng pixel.

Giá trị không đổi: "android.app.sdksandbox.extra.WIDTH_IN_PIXELS"

LOAD_SDK_ĐÃ_ĐƯỢC_TẢI

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int LOAD_SDK_ALREADY_LOADED

SDK đã được tải.

Điều này cho thấy ứng dụng khách đã cố tải lại cùng một SDK bằng cách gọi loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) sau khi được đã tải thành công.

Giá trị không đổi: 101 (0x00000065)

LOAD_SDK_ĐÃ_XẢY_RA_LỖI_NỘI_BỘ

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int LOAD_SDK_INTERNAL_ERROR

Đã xảy ra lỗi nội bộ khi tải SDK.

Điều này cho thấy lỗi nội bộ chung đã xảy ra khi áp dụng lệnh gọi từ ứng dụng .

Giá trị không đổi: 500 (0x000001f4)

LOAD_SDK_KHÔNG_TÌM_THẤY

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int LOAD_SDK_NOT_FOUND

Không tìm thấy SDK.

Điều này cho thấy ứng dụng khách đã cố tải SDK không tồn tại bằng cách gọi loadSdk(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver).

Giá trị không đổi: 100 (0x00000064)

TẢI_SDK_SDK_DEFINED_ERROR

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int LOAD_SDK_SDK_DEFINED_ERROR

Lỗi SDK sau khi tải.

Điều này chỉ ra rằng SDK đã gặp lỗi trong quá trình khởi chạy sau khi tải. Chiến lược phát hành đĩa đơn thông tin chi tiết về dữ liệu này có thể lấy từ Gói được trả về trong LoadSdkException thông qua OutcomeReceiver được truyền vào SdkSandboxManager#loadSdk.

Giá trị không đổi: 102 (0x00000066)

TẢI_SDK_SDK_SAND_HÀNG_TẮT_SDK

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int LOAD_SDK_SDK_SANDBOX_DISABLED

Hộp cát SDK bị tắt.

Thông báo này cho biết hộp cát SDK đã bị tắt. Mọi nỗ lực tải SDK sau này trong thì quá trình khởi động này cũng sẽ không thành công.

Giá trị không đổi: 103 (0x00000067)

YÊU_CẦU_GÓI_NỀN_TẢNG_ĐÃ_XẢY_RA_LỖI_NỘI_BỘ

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int REQUEST_SURFACE_PACKAGE_INTERNAL_ERROR

Đã xảy ra lỗi nội bộ khi yêu cầu SurfacePackage.

Điều này cho thấy lỗi nội bộ chung đã xảy ra khi yêu cầu SurfacePackage.

Giá trị không đổi: 700 (0x000002bc)

YÊU_ CẦU_SURFACE_PACKAGE_SDK_KHÔNG_TẢI_TẢI

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 5
public static final int REQUEST_SURFACE_PACKAGE_SDK_NOT_LOADED

SDK không được tải khi yêu cầu SurfacePackage.

Điều này cho thấy SDK mà SurfacePackage đang được yêu cầu không phải do hộp cát đã ngừng hoạt động hoặc do hộp cát không được tải ngay từ đầu.

Giá trị không đổi: 701 (0x000002bd)

SDK_SAND HỘP_XỬ LÝ_NOT_AVAILABLE

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final int SDK_SANDBOX_PROCESS_NOT_AVAILABLE

Không có quy trình hộp cát SDK.

Mã này cho biết rằng quy trình hộp cát SDK không có sẵn vì quy trình này đã ngừng hoạt động, đã bị ngắt kết nối hoặc không được tạo ngay từ đầu.

Giá trị không đổi: 503 (0x000001f7)

DỊCH_VỤ_HỘP_CÁT_SDK

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public static final String SDK_SANDBOX_SERVICE

Sử dụng với Context#getSystemService(String) để truy xuất SdkSandboxManager để tương tác với các SDK thuộc ứng dụng này.

Giá trị không đổi: "sdk_sandbox"

TRẠNG_THÁI_HỘP_CÁT_SDK_ĐÃ_TẮT

Đã thêm vào API cấp 33
Cũng có trong Tiện ích Dịch vụ quảng cáo 3
public static final int SDK_SANDBOX_STATE_DISABLED

Hộp cát SDK bị tắt.

Các API SdkSandboxManager bị ẩn. Số lần thử gọi sẽ dẫn đến UnsupportedOperationException.

Giá trị hằng số: 0 (0x00000000)

SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

Đã thêm vào API cấp 33
Cũng có trong Tiện ích Dịch vụ quảng cáo 3
public static final int SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

Hộp cát SDK được bật.

Ứng dụng có thể sử dụng các API SdkSandboxManager để tải SDKs mà nó phụ thuộc vào quy trình hộp cát SDK tương ứng.

Giá trị không đổi: 2 (0x00000002)

Phương thức công khai

addSdkSandboxProcessDeathCallback

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public void addSdkSandboxProcessDeathCallback (Executor callbackExecutor, 
                SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Thêm lệnh gọi lại được đăng ký cho các sự kiện trong vòng đời hộp cát SDK, chẳng hạn như hộp cát SDK chết. Nếu hộp cát chưa được tạo khi lệnh này được gọi, yêu cầu sẽ được được lưu trữ cho tới khi hộp cát được tạo, tại thời điểm hộp cát được kích hoạt cho hộp cát đó. Nhiều Bạn có thể thêm các lệnh gọi lại để phát hiện trường hợp bị gián đoạn và sẽ không bị xoá khi hộp cát ngừng hoạt động.

Tham số
callbackExecutor Executor: Executor để gọi lệnh gọi lại Giá trị này không được là null. Các sự kiện gọi lại và trình nghe được gửi đi thông qua Executor này, giúp bạn dễ dàng kiểm soát chuỗi nào được sử dụng. Để gửi thông báo các sự kiện thông qua chuỗi chính trong ứng dụng, bạn có thể sử dụng Context.getMainExecutor(). Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp.

callback SdkSandboxManager.SdkSandboxProcessDeathCallback: SdkSandboxProcessDeathCallback sẽ nhận hộp cát SDK các sự kiện trong vòng đời. Giá trị này không được là null.

addSyncedSharedPreferencesKeys

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 5
public void addSyncedSharedPreferencesKeys (Set<String> keys)

Thêm khoá vào tập hợp các khoá đang được đồng bộ hoá từ SharedPreferences mặc định của ứng dụng với SDK hộp cát.

Dữ liệu đã đồng bộ hoá sẽ được SDK đọc bằng API SdkSandboxController.getClientSharedPreferences().

Để dừng đồng bộ hoá bất kỳ khoá nào đã được thêm bằng API này, hãy sử dụng removeSyncedSharedPreferencesKeys(java.util.Set).

Quá trình đồng bộ hoá bị gián đoạn nếu ứng dụng khởi động lại và người dùng phải gọi lại API này để xây dựng lại nhóm khoá để đồng bộ hoá.

Lưu ý: Lớp này không hỗ trợ việc sử dụng trong nhiều quy trình.

Tham số
keys Set: tập hợp các khoá sẽ được đồng bộ hoá với Hộp cát. Giá trị này không được là null.

getAppOwnedSdkSandboxInterfaces

public List<AppOwnedSdkSandboxInterface> getAppOwnedSdkSandboxInterfaces ()

Tìm nạp danh sách AppOwnedSdkSandboxInterface đã đăng ký cho một ứng dụng

Giá trị trả về
List<AppOwnedSdkSandboxInterface> danh sách trống nếu không tìm thấy CallInfo trên bản đồ, nếu không có danh sách AppOwnedSdkSandboxInterface Giá trị này không được là null.

getSandboxedSdk

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 5
public List<SandboxedSdk> getSandboxedSdks ()

Tìm nạp thông tin về các SDK đã tải trong hộp cát.

Giá trị trả về
List<SandboxedSdk> Danh sách SandboxedSdk chứa mọi SDK đang tải. Giá trị này không được là null.

Có trạng thái Hộp cát Sdk

Đã thêm vào API cấp 33
Cũng có trong Tiện ích Dịch vụ quảng cáo 3
public static int getSdkSandboxState ()

Trả về trạng thái cung cấp hiện tại của tính năng hộp cát SDK.

Giá trị trả về
int Giá trị là SDK_SANDBOX_STATE_DISABLED hoặc SDK_SANDBOX_STATE_ENABLED_PROCESS_ISOLATION

getSyncedSharedPreferencesKeys

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 5
public Set<String> getSyncedSharedPreferencesKeys ()

Trả về các khoá đã đặt đang được đồng bộ hoá từ SharedPreferences mặc định của ứng dụng đến hộp cát SDK.

Giá trị trả về
Set<String> Giá trị này không được là null.

tải Sdk

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public void loadSdk (String sdkName, 
                Bundle params, 
                Executor executor, 
                OutcomeReceiver<SandboxedSdkLoadSdkException> receiver)

Tải SDK trong quy trình java hộp cát SDK.

Tải thư viện SDK có sdkName vào quy trình hộp cát SDK theo cách không đồng bộ. Chiến lược phát hành đĩa đơn người gọi sẽ được thông báo qua receiver.

Phương thức gọi phải khai báo SDKs mà nó phụ thuộc trong tệp kê khai bằng thẻ <uses-sdk-library>. Phương thức gọi chỉ có thể tải SDKs mà nó tuỳ thuộc vào SDK hộp cát.

Khi ứng dụng khách tải SDK đầu tiên, một quy trình hộp cát SDK mới sẽ đã tạo. Nếu hộp cát đã được tạo cho ứng dụng khách, các SDK bổ sung sẽ được tải vào cùng một hộp cát.

API này chỉ có thể được gọi khi phương thức gọi đang chạy ở nền trước. Cuộc gọi từ nền sẽ dẫn đến trả về LoadSdkException trong receiver.

Tham số
sdkName String: tên của SDK cần tải. Giá trị này không được là null.

params Bundle: các tham số bổ sung sẽ được truyền đến SDK ở dạng Bundle theo thoả thuận giữa ứng dụng và SDK. Giá trị này không được là null.

executor Executor: Executor để gọi trình nhận. Giá trị này không được là null. Các sự kiện gọi lại và trình nghe được gửi đi thông qua Executor này, giúp bạn dễ dàng kiểm soát chuỗi nào được sử dụng. Để gửi thông báo các sự kiện thông qua chuỗi chính trong ứng dụng, bạn có thể sử dụng Context.getMainExecutor(). Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp.

receiver OutcomeReceiver: Hàm này sẽ nhận được SandboxedSdk khi chạy thành công hoặc LoadSdkException. Giá trị này không được là null.

subscriptionAppOwnedSdkSandboxInterface

public void registerAppOwnedSdkSandboxInterface (AppOwnedSdkSandboxInterface appOwnedSdkSandboxInterface)

Đăng ký AppOwnedSdkSandboxInterface cho một quy trình ứng dụng.

Đăng ký một AppOwnedSdkSandboxInterface có cùng tên với giao diện đã đăng ký sẽ dẫn đến IllegalStateException.

AppOwnedSdkSandboxInterface#getName() cho biết tên của giao diện.

Tham số
appOwnedSdkSandboxInterface AppOwnedSdkSandboxInterface: AppOwnedSdkSandboxInterface sẽ được đăng ký Giá trị này không được là null.

removeSdkSandboxProcessDeathCallback

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public void removeSdkSandboxProcessDeathCallback (SdkSandboxManager.SdkSandboxProcessDeathCallback callback)

Xoá SdkSandboxProcessDeathCallback từng được thêm vào bằng addSdkSandboxProcessDeathCallback(java.util.concurrent.Executor, android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback)

Tham số
callback SdkSandboxManager.SdkSandboxProcessDeathCallback: SdkSandboxProcessDeathCallback đã được thêm trước đó bằng SdkSandboxManager#addSdkSandboxProcessDeathCallback(Executor, SdkSandboxProcessDeathCallback) Giá trị này không được là null.

removeSyncedSharedPreferencesKeys

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 5
public void removeSyncedSharedPreferencesKeys (Set<String> keys)

Xoá khoá khỏi tập hợp khoá đã được thêm bằng addSyncedSharedPreferencesKeys(java.util.Set)

Các khoá bị xoá sẽ bị xoá khỏi hộp cát SDK nếu chúng đã được đồng bộ hoá.

Tham số
keys Set: tập hợp tên khoá sẽ không còn được đồng bộ hoá với Hộp cát nữa. Giá trị này không được là null.

requestSurfacePackage

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public void requestSurfacePackage (String sdkName, 
                Bundle params, 
                Executor callbackExecutor, 
                OutcomeReceiver<BundleRequestSurfacePackageException> receiver)

Gửi yêu cầu về gói nền tảng đến SDK.

Sau khi ứng dụng nhận được tín hiệu về việc tải SDK thành công và thêm SurfaceView vào hệ phân cấp khung hiển thị, nó có thể yêu cầu không đồng bộ SurfacePackage để kết xuất khung hiển thị từ SDK.

Khi SurfacePackage đã sẵn sàng, lệnh gọi lại OutcomeReceiver#onResult của receiver đã thông qua sẽ được gọi ra. Lệnh gọi lại này sẽ chứa một Bundle chứa khoá SdkSandboxManager#EXTRA_SURFACE_PACKAGE có giá trị được liên kết là SurfacePackage được yêu cầu.

params đã truyền phải chứa các khoá sau: EXTRA_WIDTH_IN_PIXELS, SdkSandboxManager#EXTRA_HEIGHT_IN_PIXELS, SdkSandboxManager#EXTRA_DISPLAY_IDSdkSandboxManager#EXTRA_HOST_TOKEN. Nếu bất kỳ khoá nào trong số này bị thiếu hoặc không hợp lệ, thì hệ thống sẽ gửi IllegalArgumentException.

API này chỉ có thể được gọi khi phương thức gọi đang chạy ở nền trước. Cuộc gọi từ nền sẽ dẫn đến việc trả về RequestSurfacePackageException trong receiver.

Tham số
sdkName String: tên của SDK được tải vào hộp cát SDK. Giá trị này không được là null.

params Bundle: các thông số mà ứng dụng khách truyền đến SDK. Giá trị này không được là null.

callbackExecutor Executor: Executor để gọi lệnh gọi lại Giá trị này không được là null. Các sự kiện gọi lại và trình nghe được gửi đi thông qua Executor này, giúp bạn dễ dàng kiểm soát chuỗi nào được sử dụng. Để gửi thông báo các sự kiện thông qua chuỗi chính trong ứng dụng, bạn có thể sử dụng Context.getMainExecutor(). Nếu không, hãy cung cấp Executor để gửi đến một luồng phù hợp.

receiver OutcomeReceiver: Hàm này trả về Bundle khi thành công và có chứa khoá SdkSandboxManager#EXTRA_SURFACE_PACKAGE có giá trị SurfacePackage hoặc RequestSurfacePackageException khi không thành công. Giá trị này không được là null.

Gửi
IllegalArgumentException nếu params không chứa mọi khoá bắt buộc.

Hoạt động startSdkSandbox

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 7
public void startSdkSandboxActivity (Activity fromActivity, 
                IBinder sdkActivityToken)

Bắt đầu một Activity trong hộp cát SDK.

Hàm này sẽ bắt đầu một Activity mới trong cùng một tác vụ của fromActivity đã truyền và chuyển nó vào SDK dùng chung sdkActivityToken đã truyền mà sẽ xác định một yêu cầu từ SDK đó để thống kê Activity này.

Activity sẽ không khởi động trong các trường hợp sau:

  • Ứng dụng gọi API này đang chạy ở chế độ nền.
  • sdkActivityToken đã truyền không liên kết với yêu cầu Activity tạo thành SDK dùng chung với ứng dụng gọi.
  • SDK chia sẻ sdkActivityToken được truyền đã xoá yêu cầu của SDK này Activity
  • Hộp cát Activity đã được tạo.

Tham số
fromActivity Activity: Activity sẽ được dùng để khởi động hộp cát mới Activity bằng cách gọi Activity#startActivity(Intent) dựa trên hộp cát đó. Giá trị này không được là null.

sdkActivityToken IBinder: giá trị nhận dạng được chia sẻ bởi SDK yêu cầu Activity. Giá trị này không được là null.

gỡ tải SDK

Đã thêm vào API cấp 34
Cũng có trong Tiện ích Dịch vụ quảng cáo 4
public void unloadSdk (String sdkName)

Gỡ tải SDK đã được phương thức gọi tải trước đó.

Chúng tôi không đảm bảo rằng bộ nhớ được phân bổ cho SDK này sẽ được giải phóng ngay lập tức. Tất cả các lệnh gọi tiếp theo đến requestSurfacePackage(java.lang.String, android.os.Bundle, java.util.concurrent.Executor, android.os.OutcomeReceiver) cho sdkName đã cho sẽ không thành công.

API này chỉ có thể được gọi khi phương thức gọi đang chạy ở nền trước. Cuộc gọi từ nền sẽ dẫn đến việc gửi SecurityException.

Tham số
sdkName String: tên của SDK cần huỷ tải. Giá trị này không được là null.

Huỷ đăng kýAppOwnedSdkSandboxInterface

public void unregisterAppOwnedSdkSandboxInterface (String name)

Huỷ đăng ký ERROR(/AppOwnedSdkSandboxInterfaces) cho một quy trình ứng dụng.

Tham số
name String: tên mà AppOwnedSdkSandboxInterface được đăng ký. Giá trị này không được là null.