如何获取短信内容
如何获取短信内容,并写出关键的Java代码
编写一个广播接收器(ShortMessageReceiver),其中onReceiver方法的代码如下:
1 public class ShortMessageReceiver extends BroadcastReceiver{
2 @Override
3 public void onReceive(Context context,Intent intent){
4 Bundle bundle=intent.getExtras();
5 if(bundle !=null)
6 {
7 //获取接收到的短信数据
8 Object[] objArray=(Object[])bundle.get("pdus");
9 //定义封装短信内容的SmsMessage对象数组
10 SmsMessage[] messages=new SmsMessage[objArray.length];
11 //遍历收到的所有短信
12 for(int i=0;i<objArray.length;i++){
13 {
14 //将每条短信数据转换成SmsMessage对象
15 messages[i]=SmsMessage.createFromPdu((byte[])objArray[i]);
16 //获得发送短信的电话号码和短信内容
17 String s="手机号:"+messages[i].getOriginatingAddress()+"\n";
18 s+="短信内容:"+messages[i].getDisplayMessageBody();
19 //显示发送短息的电话号码和短息内容
20 Toast.makeText(context,s,Toast.LENGTH_LONG).show();
21 }
22 }
23 }
然后在AndroidManifest.xml文件中定义 ShortMessageReceiver时添加短信广播Action即可,代码如下:
1 <receiver android:name=".ShortMessageReceiver"
2 android:enabled="true">
3 <intent-filter>
4 <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
5 <intent-filter>
6 </receiver>