abortBroadcast () из деятельности - PullRequest
0 голосов
/ 02 ноября 2011

используя следующий код, я могу abortBroadcast () из моего broadcastreciver и связать смс и адрес с моей деятельностью, я пытаюсь сделать это abortBroadcast () из моей деятельности, поэтому моя активность проверяет, совпадает ли адрес содин из моих сохраненных адресов, а затем abortBroadcast (), но я не могу найти способ сделать это, возможно ли каким-либо образом abortBroadcast () из моей деятельности или какой-либо способ проверить детали из действия, а затем разрешить прерывание широковещательного сообщения?

вот мой код:

      @Override
public void onReceive(Context context, Intent intent) {
    Bundle extras = intent.getExtras();
    // a notification message
    String messages = "";

    if (extras != null) {

        Object[] smsExtra = (Object[]) extras.get("pdus");

        for (int i = 0; i < smsExtra.length; ++i) {

            SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
            String body = sms.getMessageBody().toString();// sf
            String address = sms.getOriginatingAddress();
            messages += "SMS from " + address + " :\n";
            messages += body + "\n";

        }

        Intent data = new Intent(context, Details.class);

        data.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        for (int i = 0; i < smsExtra.length; ++i) {
            // get sms message
            SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
            String body = sms.getMessageBody().toString();
            String address = sms.getOriginatingAddress().toString();
            // bundle
            Bundle bundle1 = new Bundle();
            bundle1.putString("title", body);
            bundle1.putString("title2", address);
            data.putExtras(bundle1);
            context.startActivity(data);
            abortBroadcast();

        }
    }
}

}

в моей деятельности:

                Bundle bundle1 = this.getIntent().getExtras();
    String title = bundle1.getString("title");
    String title2 = bundle1.getString("title2");
    ((EditText) findViewById(R.id.ettext)).setText(title);
    ((EditText) findViewById(R.id.etnumber)).setText(title2);

      mSms =(TextView)findViewById(R.id.tvsms);
      String sms = mSms.getText().toString();

    if (sms.equals(title2))
        abortBroadcast();????

1 Ответ

0 голосов
/ 03 ноября 2011

Я думаю, что этот пост достаточно похож на вашу проблему, если только я не неправильно понял. Вы пытаетесь передать данные между вашим broadcastReceiver и вашей деятельностью, правильно? Этот пост аналогичен, и я согласен с первым ответом - вы должны настроить ваш broadcastReceiver как подкласс действия

андроид общается между активностью и приемником вещания

Надеюсь, это поможет, лучше всего!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...