Я пытаюсь использовать sendOrderedBroadcast в моем приложении для Android.
Я хочу иметь возможность отправлять намерение из одного из моих приложений в другое, а затем я хочу получить данные обратно из приложения, которое получает намерение, в данном случае логическое значение 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-й параметр)
И тогда как мне получить данные обратно из трансляции?
Я сделал быстрый google и не придумал никаких примеров, любая помощь или примеры очень ценятся.
ОБНОВЛЕННЫЙ КОД:
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);
}
Итак, согласно документу, я должен получить 100 обратно в свой приемник DomainBroadcast, но он всегда возвращается как 0.
Кто-нибудь может понять, почему?
**resultReceiver — ваш собственный BroadcastReceiver, который будет рассматриваться как конечный получатель трансляции.*
onReceive()
выше. - person JRL   schedule 31.05.2010