我正在开发一个可以集成到其他人的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");
}
因为如果活动是在Manifest中声明的,那么上面的代码实际上会运行(这会抢夺开发人员的活动)。
注意:我需要在运行时知道,因为在实际尝试运行活动之前,我必须提前提醒服务器。
有人有想法吗?