Nội dung cập nhật về các hạn chế đối với giao diện không phải SDK trên Android 13

Android 13 cung cấp danh sách mới cập nhật về các giao diện không phải SDK bị hạn chế dựa trên khả năng cộng tác với nhà phát triển Android và kiểm thử nội bộ mới nhất. Bất cứ khi nào có thể, chúng tôi phải đảm bảo việc cung cấp các phương án thay thế công khai trước khi hạn chế giao diện không phải SDK.

Nếu ứng dụng của bạn không nhắm đến Android 13, thì một số thay đổi này có thể sẽ không ảnh hưởng ngay. Tuy nhiên, mặc dù hiện tại bạn có thể sử dụng một số giao diện không phải SDK (tuỳ thuộc vào cấp độ API mục tiêu của ứng dụng), nhưng việc sử dụng phương thức hoặc trường không phải SDK luôn có nguy cơ cao làm hỏng ứng dụng.

Nếu không chắc ứng dụng của mình có sử dụng giao diện không phải SDK hay không, bạn có thể kiểm tra ứng dụng để tìm hiểu. Nếu ứng dụng của bạn dựa vào giao diện không phải SDK, thì bạn nên bắt đầu lập kế hoạch di chuyển sang SDK làm giải pháp thay thế. Tuy nhiên, chúng tôi hiểu rằng vẫn có một số trường hợp sử dụng hợp lệ cho việc ứng dụng sử dụng giao diện không phải SDK. Nếu không tìm được giải pháp thay thế cho việc sử dụng giao diện không phải SDK cho một tính năng trong ứng dụng, thì bạn nên yêu cầu một API công khai mới.

Các thay đổi đối với danh sách cho Android 13

Những thay đổi về danh sách trong Android 13 thuộc các danh mục sau:

Để xem đầy đủ danh sách tất cả giao diện không phải SDK cho Android 13, hãy tải tệp sau:

Tệp: hiddenapi-flags.csv

Giá trị tổng kiểm SHA-256: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Các giao diện không phải SDK hiện đã bị chặn trên Android 13

Hộp mã sau đây liệt kê tất cả giao diện không phải SDK không được hỗ trợ trong Android 12 (API cấp 31) và bị chặn trong Android 13 (API cấp 33). Tức là những giao diện này thuộc danh sách max-target-s nên ứng dụng của bạn chỉ có thể sử dụng các giao diện này nếu nhắm đến Android 12 (API cấp 31) trở xuống.

Mục tiêu của chúng tôi là đảm bảo rằng các giao diện thay thế công khai sẽ được cung cấp trước khi chúng tôi hạn chế giao diện không phải SDK. Chúng tôi hiểu rằng ứng dụng của bạn có thể có trường hợp sử dụng hợp lệ để sử dụng các giao diện này. Nếu giao diện mà ứng dụng của bạn dùng trong phiên bản trước hiện đã bị chặn trong Android 13, thì bạn nên yêu cầu một API công khai mới cho giao diện đó.

Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead.
Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead.
Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system.
Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.