现在的位置: 首页 > 综合 > 正文

android_短信广播接收者的应用

2018年09月02日 ⁄ 综合 ⁄ 共 1730字 ⁄ 字号 评论关闭

从上一篇的BroadcastReceiver的学习及功能的了解,对于短信广播的处理学起来会更容易一些,只是一些广播的配置有点改变,下面我们一起学习吧,如果有错误希望亲们及时给我指正,或者提给我更好的方法。

     呵呵,亲爱的情侣们,若不放心自己男或女朋友,可以随时监听谁给她或他发了短信,短信内容是什么,谁发的都能知道,赶快自己也弄一个吧!!!

 

1。首先编写短信广播接收类必须先配置AndroidManifest.xml

      (1)注册短信接收者,必须统一设置action的name为android.provider.Telephony.SMS_RECEIVED

并且设置用户权限:允许接收短信    
android.permission.RECEIVE_SMS

<application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".SMS" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
 </application>
   <uses-permission android:name="android.permission.RECEIVE_SMS"/> 

    (2)手动编码注册短信接收者

                IntentFilter filter=new IntentFilter();
            filter.addAction("android.provider.Telephony.SMS_RECEIVED");
            Application app=new Application();
  //编码注短信接收者:registerReceiver(BroadcastReceiver receiver, IntentFilter  filter);
            app.registerReceiver(this, filter);
       //取消接收者,this 指当前的接收者SMS
            app.unregisterReceiver(this);
2.编写短信接收者SMS

这里只是发短信没有界面布局,结果只输出,所以可以不创建activity

 

public class SMS extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		Bundle bundle = intent.getExtras();
		Object[] messes = (Object[]) bundle.get("pdus");
		for (Object oo : messes) {
			byte[] sms = (byte[]) oo;
			SmsMessage smsMessage = SmsMessage.createFromPdu(sms);
			// 发短信电话
			String phone = smsMessage.getOriginatingAddress();
			// 短信内容
			String shortmess = smsMessage.getMessageBody();
			// 发送时间
			SimpleDateFormat f = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
			String time = f.format(smsMessage.getTimestampMillis());
			System.out.println("发送号码:" + phone + "  内容:" + shortmess
					+ "  时间:" + time);
		}
	}
}

 

3.打开android虚拟机,打开两个虚拟机,其中一个运行项目,另一个给这个发短信,则会打印出发短信的号码、内容及发送时间

 

嘿嘿,亲们都明白了嘛,如果有疑问或者错误的地方,请提问出来吧

抱歉!评论已关闭.