プロジェクトでは、Android タブレットにインストールされる特定のアプリケーションを起動したいと考えています。これは私たちが制御できるアプリケーションではなく (完全にサードパーティです)、Image_Capture Camera Intent が機能する方法と同様のワークフローが必要です (つまり、起動し、終了するのを待って、onActivityResult 関数でデータを受信します)。 )次のコードを使用してアプリケーションを起動できますが:
Intent intent = this.getPackageManager().getLaunchIntentForPackage("my.thirdparty.package");
if(intent != null) {
startActivityForResult(intent,MY_INT_FLAG);
} else {
new AlertDialog.Builder(this).setMessage("This device does not appear to have the application installed").setPositiveButton("Okay",null).create().show();
}
アプリケーションを起動しているだけなので、resultCode 0 (RESULT_CANCELLED)を onActivityResult にすぐに渡します。
私が望むのは、特定のパッケージの意図のリストを発見できることです。PackageManager にはgetInstalledApplicationsという関数があります(最初にパッケージ名を取得した方法です) が、フラグPackageManager.GET_INTENT_FILTERSは、結果のApplicationInfoオブジェクトの metaData プロパティを設定していないようです。
インテント リストを取得するか、APK からデータをマイニングするかについて、洞察を持っている人はいますか?