0

そして、特定のアクションを開くことができるかどうか、たとえば、gmail アプリケーションで新しいメールを開く、またはそのような whatsapp で新しいメッセージを開くことができるかどうか疑問に思います。

アプリケーション内でアプリケーションの特定のアクションをランチしようとしているので、さらにいくつかのアプリケーションと対話します。

可能であれば、それを達成する方法。

これまでのところ、パッケージ名を使用してアプリケーションを起動できます。

またはgetInstalledPackagesからパッケージリストを取得しますが、アプリケーションアクションが公開されていることがわかりません。

それはアプリケーションに依存していますか?

同様に、私は次のようなことができることを知っています:

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");

そのアクションの選択 (デフォルトでない場合) をユーザーに促します。しかし、ユーザーの入力をスキップしてアプリを起動するための関連情報が見つかりません。

少なくとも最も人気のあるアプリケーションでこれが可能になることを願っています。

4

1 に答える 1

2

にはgetInstalledPackages、アプリケーションに関して PackageManager から取得できるほとんどすべてが含まれています。ただし、各コンポーネントの意図は含まれていません。特に、ActivityInfo には、インテントまたはそれを開始するアクションを格納するフィールドが含まれていません。私の知る限り、プログラムで欲しいものを手に入れるのは難しいです。

ただし、人気のあるアプリケーションの場合は、apk を直接取得し、それらAndroidManifest.xmlを取得して、必要なものを手動で取得できます。

複数のコンポーネント (アプリケーション) がアクションを処理できる場合にユーザー入力をスキップする場合は、 でコンポーネントを明示的に指定する必要がありますintent.setComponent()

Intent intent = new Intent(Intent.ACTION_NAME);
intent.setComponent(new ComponentName("com.package.address","com.package.address.TargetActivity"));
startActivity(intent);
于 2013-04-30T05:31:40.400 に答える