Как передать значение из активности в широковещательный приемник?

Я разрабатываю одно приложение с использованием широковещательного приемника. У меня проблема с получением значения в широковещательном приемнике из активности, пожалуйста, скажите мне, как отправить значение из активности в широковещательный приемник и как получить значение в широковещательном приемнике из активности, я пытаюсь, как показано ниже, но его не работает

мой код на стороне активности

Intent intent = new Intent("my.action.string");
    //intent.setAction("IncomCallBroadCast");
    intent.putExtra("contact",phNo);
    sendBroadcast(intent);

на стороне вещательного приемника

 String action = intent.getAction();
    Log.i("Receiver", "Broadcast received: " + action);
    if(action.equals("my.action.string")){
        contact = intent.getExtras().getString("contact");
        Log.e("",contact );
    }
manifest
<action android:name="my.action.string"/> 

person Durga    schedule 29.01.2014    source источник
comment
вы не печатаете свой контакт в журнале?   -  person    schedule 29.01.2014
comment
да, я хочу получить контакт в журнале   -  person Durga    schedule 29.01.2014
comment
покажите нам строку, объявляющую переменную phNo.   -  person Arunkumar    schedule 29.01.2014
comment
его получение исключения нулевого указателя   -  person Durga    schedule 29.01.2014


Ответы (4)


В основной деятельности используйте этот код для запуска широковещательного приемника

Intent intent = new Intent("package.action.string");
intent.putExtra("extra", phoneNo); \\ phoneNo is the sent Number
sendBroadcast(intent);

В широковещательном ресивере используйте этот код

public void onReceive(Context context, Intent intent) {
 String action = intent.getAction();

 Log.i("Receiver", "Broadcast received: " + action);

 if(action.equals("package.action.string")){
   String state = intent.getExtras().getString("extra");

  }
}

ПРИМЕЧАНИЕ. Не забудьте указать свой широковещательный приемник в файле манифеста.

<receiver android:name=".SmsReceiver" android:enabled="true">
<intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    <action android:name="package.action.string" />
    <!-- and some more actions if you want -->
</intent-filter>
</receiver>
person Radheshyam Singh    schedule 29.01.2014

изменить эту строку

String action = intent.getAction();
contact = intent.getExtras().getString("contact");

to

Intent intent = getIntent();
contact = intent.getStringExtra("contact");
person Shailendra Madda    schedule 29.01.2014

Убедитесь, что phNo имеет тип String. Если нет, используйте getInt() в своем BroadcastReciever.

Возможно, вы захотите добавить String в дополнительные функции и вернуть их в String. Если тип переменной phNo — int, то вы должны получить дополнительное значение только в форме int.

person Arunkumar    schedule 29.01.2014

попробуйте следующее:

Log.e("i am printing my cotnact " , contact );

и дайте мне обратную связь

Надеюсь, это поможет .

person Community    schedule 29.01.2014