2

ユーザーが何かを描画/スケッチ/ペイントできるようにする必要があります。このタスクを実行するアプリはすでにたくさんあります(Skitchのように、これを例として使用します)。だから私は車輪の再発明をしたくありません。
Androidでは、理論的には、意図的に他のアクティビティを開始できます。これは、Unixの「パイプ」のようなものです。
問題は、Skitchを起動するための情報を取得する方法がわからないことです。
Skitchをアプリに統合するには、Skitchがサポートするアクション、終了時に返されるインテント(存在する場合)を知る必要があります。

Skitch、photoshop、およびその他の多くのタッチ描画アプリをデバイスにインストールしましたが、このコードは機能しません:

Uri data = Uri.fromFile(file);
Intent i = new Intent(Intent.ACTION_EDIT);
i.setData(data);
i.setType("image/*");                               
startActivityForResult(i, ACTIVITY_DRAW);

次の方法でアプリからSkitchを起動できます:しかし、明らかにこの方法で返された結果を取得することはできません(ここからのコード)。

Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("com.evernote.skitch");
i.addCategory(Intent.CATEGORY_LAUNCHER);
startActivity(i);

私の質問:サードパーティのアプリを起動するための情報を見つけるための標準的な方法はありますか?このサイト
はそのような情報を共有/取得する唯一の方法ですか? または、私の問題について何か提案があれば、私を助けてください。 ありがとうございました!

4

2 に答える 2

3

あなたはすでにあなたのアプリから別のアプリケーションアクティビティを呼び出す方法を知っているかもしれないので..このようにここに言及しました。

Intent intent = new Intent(Intent.ACTION_RUN); 
intent.setComponent(new ComponentName("<packet name>", "<class name>")); 
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT); 

if(list.size() > 0) 
{ 
 Log.i("Log", "Have application" + list.size()); 
 startActivity(intent); 
} 
else 
{ 
    Log.i("Log", "None application"); 
} 

必要なのは、アクティビティを呼び出すための主に2つのことです

1)そのアクティビティのパッケージ名2)アクティビティクラス名

これらの2つの情報は、Zxing、Google Maps Applicationのように、オープンソースであるか、無料で使用できる場合にのみ利用できます。

次のようなアプリケーションアクティビティを開始する別の方法があります。

Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" + numberField.getText())); // set the Uri
startActivity(intent);

この方法を使用するには、呼び出すアクティビティの正しいアクションと、渡す正しいパラメーターを知っている必要があります。

繰り返しになりますが、これらの情報は、オープンソースであるか、FacebookやGmailアプリのようにメッセージを共有および投稿するために無料で使用できる場合にのみ利用できます。

そのため、デバイス内の特定の商用アプリを呼び出すために何を渡す必要があるかを教えてくれるようなものを探している場合、それを直接見つけることはできません。

于 2012-04-17T05:13:24.833 に答える
0

これは古い質問ですが、SonyのAppXploreアプリケーション(無料)には、デバイスにインストールされているすべてのアプリのアクティビティのパッケージと名前が表示されるため、最終的にはそれらを使用して明示的なインテントを実行できることを誰かが知るのに役立つ可能性があります。

于 2014-02-19T06:58:49.807 に答える