私は、他の人の APK に統合されるサードパーティ ライブラリに取り組んでいます。ライブラリに新しいアクティビティを追加しました。ただし、私のライブラリを統合している人々が AndroidManifest.xml で私の新しいアクティビティを宣言しているかどうかを確認したいと思います (おそらく彼らは偶然に忘れてしまったのでしょう)。
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");
}
アクティビティがマニフェストで宣言されている場合、上記のコードが実際に実行されるためです (これにより、開発者のアクティビティが奪われます)。
注: 実際にアクティビティを実行しようとする前に、事前にサーバーに警告する必要があるため、実行時に知る必要があります。
誰にもアイデアがありますか?