AndroidアプリでsendOrderedBroadcastを使用しようとしています。
あるアプリケーションから別のアプリケーションにインテントを送信できるようにしたいのですが、インテントを受け取るアプリケーションからデータを取得したいと思います。この場合はブール値のtrueまたはfalseです。
現在のコードは次のとおりです。
Intent i = new Intent();
i.setAction(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT);
i.putExtra("com.testnetworks.QCLEVEL", aProposedTheoreticalQoSLevel);
sendOrderedBroadcast(i, null, null, null, Activity.RESULT_OK, null, null);
これは私が望むことを達成するための正しい方法ですか?
もしそうなら、resultReceiver *パラメーターとして何を使用しますか?(3番目のパラメーター)
次に、ブロードキャストからデータを受信するにはどうすればよいですか?
私は簡単なグーグルをしました、そして、どんな例も思いつきません、どんな助けまたは例も大いに感謝します。
更新されたコード:
sendOrderedBroadcast(i, null, domainBroadcast, null, Activity.RESULT_OK, null, null);
class DomainBroadcast extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Log.d("BROADCAST", "Returning broadcast");
Bundle b = intent.getExtras();
Log.d("BROADCAST", "Returning broadcast " +
b.getInt("com.testnetworks.INT_TEST"));
}
}
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(GlobalData.PROPOSE_IN_DOMAIN_ROAM_INTENT.equals(action)){
Bundle b = intent.getExtras();
int testQCLevel = b.getInt("com.testnetworks.QCLEVEL");
switch(testQCLevel){
case 1:
Log.d("QCLevel ", "QCLevel = UNAVAILABLE");
break;
case 2:
Log.d("QCLevel ", "QCLevel = BELOWUSABILITY");
break;
case 3:
Log.d("QCLevel ", "QCLevel = VOICE");
break;
}
intent.putExtra("com.testnetworks.INT_TEST", 100);
}
したがって、Docによると、DomainBroadcast受信者で100を受信する必要がありますが、常に0として返されます。
誰もが理由を見ることができますか?
**resultReceiver-ブロードキャストの最終受信者として扱う独自のBroadcastReceiver。*