Android - 检查在运行时是否在Manifest中声明了Activity

Dav*_* T. 5 android android-manifest android-activity

我正在开发一个第三方库,它将被集成到其他人的APK中.我在我的库中添加了一个新的Activity; 但是,我想看看集成我的库的人是否在他们的AndroidManifest.xml中声明了我的新Activity(可能他们偶然忘记了).

我的印象是在RunTime期间无法读取或编辑AndroidManifest.

另请注意,我无法保证在我的代码中获得Activity的实例.只有全局应用程序上下文.

我不做什么是尝试startActivity并捕获ActivityNotFoundException.即:像:

Context ctx = someView.getContext(); // <--- this is a global application context, not necessarily an instance of Activity
Intent intent = new Intent(ctx, UnsureActivity.class);
try {
    ctx.startActivity(intent); 
} catch (ActivityNotFoundException anfe) {
    System.out.println("UnsureActivity wasn't declared in manifest");
}
Run Code Online (Sandbox Code Playgroud)

因为如果活动是在Manifest中声明的,那么上面的代码实际上会运行(这会抢夺开发人员的活动).

注意:我需要在运行时知道,因为我必须在实际尝试运行活动之前提前提醒服务器.

有人有想法吗?