我正在创建一个接收 SMS 文本消息的应用程序,我创建了一个扩展 BroadcastReceiver 的类,以在应用程序内的 toast 中接收和显示 SMS 消息。我还添加了权限以及我的清单以及接收者的声明。问题是它似乎仍然没有显示该消息。它只会作为通知出现在顶部栏上。希望有人能够看到我哪里出错了。为了显示消息,我是否必须在我的 mainactivity 中有一些代码?还是应该直接从接收器类显示在我的所有活动中?下面的代码:
更新
我最终删除了我的接收器并重新创建了所有内容,现在它似乎可以正常工作
SmsReceiver.java:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras ==null)
return;
//toast
Toast.makeText(context, "Received", Toast.LENGTH_LONG).show();
Object[] pdus = (Object[]) extras.get("pdus");
for (int i = 0; i < pdus.length; i++) {
SmsMessage SMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);
String sender = SMessage.getOriginatingAddress();
String body = SMessage.getMessageBody().toString();
Intent in = new Intent("SmsMessage.intent.MAIN").putExtra("get_msg", sender+":"+body);
context.sendBroadcast(in);
this.abortBroadcast();
}
}
}