2012-04-17 2 views
2

私は何かを描画/スケッチ/ペイントすることをユーザーに許可する必要があります。このタスクを達成する多くのアプリがあります(Skitchのように、これを例として使用します)。だから私は車輪を再発明したくない。
Androidでは、理論的には、意図で他のアクティビティを開始できます。これはUnixの「パイプ」のようなものです。
問題は、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); 

私は次のように私のアプリからスキッチを起動することができますが、明らかに私はこのように返された結果を得ることができません(コードhere)。

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

私の質問:サードパーティのアプリケーションを起動するための情報を見つける標準的な方法はありますか?
this siteはそのような情報を共有/取得する唯一の方法ですか?
または私の問題の提案がある場合は、私を助けてください。
ありがとうございます!あなたはすでにあなたのアプリから別のアプリケーションアクティビティを呼び出す方法を知っているかもしれませんが

+2

あなたはSkitchの人々と直接話をしなければならないかもしれません。 –

+0

ありがとう、私はそれを行います。 –

答えて

3

すべてのあなたが必要とはどんな活動に

1)パッケージを呼び出すために主に二つのことである方法..this Mentioned Here.

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)アクティビティクラス名

これらの2つの情報は、オープンソースの場合、またはZxingのように自由に使用できる場合にのみ利用できます、Google Mapsアプリケーション使用するには、この方法の場合のようなアプリケーションのアクティビティを開始するための別の方法があります

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

は、あなたが呼び出したい活動として渡すための正しいパラメータの正しい行動を知っている必要があります。

また、これらの情報は、オープンソースの場合や、FacebookやGmailのアプリのようにメッセージを共有したり投稿したりする場合にのみ利用できます。

だから、あなたのデバイスの特定の商用アプリケーションを呼び出すために渡す必要があるものを探しているなら、あなたはそれを直接見つけられません。

+0

あなたの助けてくれてありがとうフランケンシュタイン!私はSkitch(そしておそらく他のチーム)に連絡して、そのような情報を提供できるかどうかを調べることにしました。 –

0

これは古い質問ですが、ソニーのAppXploreアプリケーション(無料)があなたのデバイスにインストールされているすべてのアプリケーションのアクティビティのパッケージと名前を示していることを誰かが知る手助けになるかもしれません。

関連する問題