读取短信内容
我们来实现一个功能,
就是我们有一个短信广播接收者也就是SmsReceiver,
当然是继承BroadcastReceiver的
广播接收者很简单,继承,然后注册,然后给权限就行了
我们要实现的功能是
这个广播接收者收到短信之后我们要读取到短信的内容
这个功能也比较恶心,比如我们读取到短信内容,可以把短信删掉,还可以把短信发送给其他人
想想都恶心
在onReceive方法里
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras == null) {
return;
}
//pdu: protocol data unit 协议数据单元
Object[] pdus = (Object[]) extras.get("pdus");
//每一个pdu代表一条短信
for (Object pdu : pdus) {
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdu);
//String sender = message.getOriginatingAddress(); //获取发信人信息
String sms = message.getMessageBody();
}
}
总结一下
(Object[])intent.getExtras().get(“pdus”)
这样就是我们的Object数组,里面是很多很多的pdu数据单元,每个pdu就是一个短信
然后我们遍历一下,拿到所有的pdu
通过pdu拿到smsMessage,
当然这个SmsMessage还包括了很多信息,短信的来源,短信的内容等等
短信内容就是getMessageBody了