Я новичок в android.I пытался зарегистрировать Broadcastreceiver в основном классе, чтобы получать sms.But, когда im работает logcat показывает «ошибка при получении трансляции намерения», и приложение становится силой close.Whats решение для этого ? Вот мой код:Как зарегистрировать BroadcastReceiver
public class Yes extends Activity {
/** Called when the activity is first created. */
private Retrieve receiver = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button start=(Button)findViewById(R.id.bt1);
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
receiver = new Retrieve();
registerReceiver(receiver,new
IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
});
}
private class Retrieve extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n<messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
smsMessage[0].getMessageBody();
}
// show first message
Toast toast = Toast.makeText(context,
"Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
toast.show();
}}
Я поставил кнопку запуска и я попытался rgister приемника в том, что button обеспечивает разрешение в файл манифест, чтобы получить sms.i не написать фильтр намерений в manifest.I думает как я зарегистрировать приемник совершенно неправильно от того, что я хочу, чтобы do.help меня ...
Спасибо, Джон, вам нужен полуколон после вашего кода? Теперь моя ошибка сказала, что у вас нет вызова для отмены регистрации приемника? Как я могу отменить регистрацию, если я зарегистрирую его внутри кнопки. Сообщение тоста также не появляется. Только заметьте панель уведомлений. Что делать? – divya
проблема решена после того, как я зарегистрирую приемник в файле манифеста и написал код для трансляции в отдельном классе. – divya
call unRegisterReceiver (smsReceiver); когда вам это больше не нужно ... Например, в onstop() mehtod Activity. Если я зарегистрируюсь в манифесте, я думаю, что Android будет управлять им автоматически – JohnCookie