他のアプリの情報を知る際、インストールされているかなどの情報はpackage managerでアプリの
存在を確認するなどして知ることができますが、もう少し情報がほしい、プラグイン的なアプリで
プラグインの情報を取得したい際に使えるsendOrderedBroadcastについて。

SDKには「Version of sendBroadcast(Intent) that allows you to receive data back from the broadcast.」と
あるようにブロードキャストしたインテントの結果を受け取れるものだ、とあります。

Intent intentgo2= new Intent();
intentgo2.setAction("com.kayac.smartphone.****.CheckOI");
GetAddOn resultReceiver = new GetAddOn();
this.sendOrderedBroadcast(intentgo2, null, resultReceiver, null, 0,null, null);
class GetAddOn extends BroadcastReceiver {
	public Bundle rst;
	@Override
	public void onReceive(Context context, Intent intent) {
		rst = getResultExtras(false);
	}
}

 resultReceiverはBroadcastReceiverを継承したクラスにします。
ブロードキャストされたインテントは各アプリに送信され、結果をセットされたりスルーされたりして
最終的に本アプリに返ってきます。以下が受信してセットする部分。
それぞれのインテントを受信したブロードキャストレシーバは、結果をセットしていきます。

Bundle result = getResultExtras(false);
if(result == null) {
	result = new Bundle();
}
int numResults = getResultCode();
numResults++;
setResultCode(numResults);
String[] strs=new String[2];
strs[0]="AAAAAA";
strs[1]="BBBBBB";
result.putStringArray("result" + (numResults),strs);
setResultExtras(result);

 あとは通常のintentのように受け取ります

result = resultReceiver.rst;
for (i1 = 1; i1 <= result.size(); i1++) {
	String[] d = result.getStringArray("result" + i1);
}

KAYACでは、作りたいものがいっぱいなAndroiderを募集しています!!

HTML5飯