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
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
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.
Danh sách thay đổi đối với Android 13
Các thay đổi về danh sách trong Android 13 thuộ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à các 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 giải pháp thay thế công khai luôn có sẵn 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ó một trường hợp sử dụng hợp lệ cho việc sử dụng các giao diện này. Nếu một giao diện mà ứng dụng của bạn sử dụng trong phiên bản trước hiện bị chặn trong Android 13, 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.
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-27 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2025-08-27 UTC."],[],[],null,["Android 13 includes updated lists of restricted non-SDK\ninterfaces based on collaboration with Android developers and the latest\ninternal testing. Whenever possible, we make sure that public alternatives are\navailable before we restrict non-SDK interfaces.\n\nIf your app does not target Android 13, some of these changes\nmight not immediately affect you. However, while you can currently use some\nnon-SDK interfaces ([depending on your app's target API\nlevel](/guide/app-compatibility/restrictions-non-sdk-interfaces#list-names)),\nusing any non-SDK method or field always carries a high risk of breaking your\napp.\n\nIf you are unsure if your app uses non-SDK interfaces, you can [test your\napp](/guide/app-compatibility/restrictions-non-sdk-interfaces#test-for-non-sdk)\nto find out. If your app relies on non-SDK interfaces, you should begin planning\na migration to SDK alternatives. Nevertheless, we understand that some apps have\nvalid use cases for using non-SDK interfaces. If you cannot find an alternative\nto using a non-SDK interface for a feature in your app, you should [request a\nnew public API](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request).\n\nList changes for Android 13\n\nThe list changes in Android 13 fall into the following category:\n\n- Non-SDK interfaces that were unsupported in Android 12 (API level 31) that are [blocked in Android 13](#new-blocked).\n\nFor a complete list of all non-SDK interfaces for Android 13, download the\nfollowing file:\n\nFile: [`hiddenapi-flags.csv`](https://dl.google.com/developers/android/tm/non-sdk/hiddenapi-flags.csv)\n\nSHA-256 checksum: `233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3`\n\nNon-SDK interfaces that are now blocked in Android 13\n\nThe following code box lists all of the non-SDK interfaces that were unsupported\nin Android 12 (API level 31) that are blocked in Android 13 (API level 33). That\nis, these interfaces belong to the `max-target-s` list, so your app can only use\nthese interfaces if it targets Android 12 (API level 31) or lower.\n\nOur goal is to make sure that public alternatives are available before we\nrestrict non-SDK interfaces, and we understand that your app might have a valid\nuse case for using these interfaces. If an interface that your app uses in a\nprior version is now blocked in Android 13, you should [request a new public\nAPI](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request)\nfor that interface. \n\n```\nLandroid/app/Activity;-\u003esetDisablePreviewScreenshots(Z)V # Use /reference/android/app/Activity#setRecentsScreenshotEnabled(boolean) instead.\nLandroid/os/PowerManager;-\u003eisLightDeviceIdleMode()Z # Use /reference/android/os/PowerManager#isDeviceLightIdleMode() instead.\nLandroid/os/Process;-\u003esetArgV0(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.\nLandroid/view/accessibility/AccessibilityInteractionClient;-\u003eclearCache(I)V # Use /reference/android/accessibilityservice/AccessibilityService#clearCache() instead.\n```"]]