我正在开发一个第三方库,它将集成到其他人的 APK 中。我在我的库中添加了一个新活动;但是,我想看看集成我的库的人是否在他们的 AndroidManifest.xml 中声明了我的新活动(也许他们不小心忘记了)。
我的印象是在运行时无法读取或编辑 AndroidManifest。
另请注意,我不能保证在我的代码中获得一个 Activity 实例。只有全局应用程序上下文。
我不做什么是尝试启动Activity 并捕获一个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");
}
因为如果在 Manifest 中声明了活动,那么上面的代码将实际运行(它会抢夺开发人员的活动)。
注意:我需要在运行时知道,因为我必须在实际尝试运行活动之前提前提醒服务器。
有人有想法吗?