从应用程序代码访问 Androids UpdateEngine(或其他 SystemApi 类)

Accessing Androids UpdateEngine (or other SystemApi classes) from application code

我正在尝试编写一个系统更新应用程序,它使用 Android 7+ 的 UpdateEngine。但是,我似乎无法从我的 java 代码访问它,因为 class 及其方法标有 @SystemApi.

我将我的应用程序集成到 AOSP 树中,但我无法从我的应用程序目录开始成功编译:当我在应用程序目录中 运行 mm ,我直接得到以下错误:

The import android.os.UpdateEngine cannot be resolved

如果我只是将 import 语句添加到一个已经存在的 aosp 系统应用程序中,也会发生这种情况,例如

从应用程序中使用 UpdateEngine(或实际上任何其他 @SystemApi)的正确方法是什么?我不想通过删除所有 SystemApi 和破坏兼容性来更改 android api。

当然,我在发布问题后立即找到了解决方案...

以防将来其他人偶然发现这个问题 - 问题是我在 Android.mk 中定义了以下 SDK 版本:

LOCAL_SDK_VERSION := current

系统 API(以及 UpdateEngine)在更改 sdk 版本后变得可访问,如下所示:

LOCAL_SDK_VERSION := system_current