Android短信的发送和广播接收者实现短信的监听 要注意Android清单中权限的设置以及广播的注册监听实现

以下就是 Android清单的XML

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.zyw.broadcastsendsms"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="15" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".SendSMS"            android:label="@string/title_activity_send_sms" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>                    </activity>        <receiver android:name=".SMSBroadcastReceiver">            <intent-filter android:priority="1000">                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>            </intent-filter>        </receiver>            </application>    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission><!--添加权限-->    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>     <uses-permission android:name="android.permission.READ_SMS"></uses-permission> </manifest>

发送短息的主界面mian.xml和实现Activity SendSMS.java

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"    android:padding="10sp" >    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="手机号码" />    <EditText        android:id="@+id/Number"        android:numeric="integer"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="请输入电话号码" />    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="短信内容" />    <EditText        android:id="@+id/Content"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="请输入短信内容"        android:lines="3" />    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content" >    </TextView>    <Button        android:id="@+id/btnSend"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:paddingTop="20sp"        android:text="发送短信"         android:onClick="send"        /></LinearLayout>
package com.zyw.broadcastsendsms;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.telephony.SmsManager;import android.view.View;import android.widget.EditText;import android.widget.Toast;public class SendSMS extends Activity{    private EditText num;    private EditText content;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        num=(EditText) findViewById(R.id.Number);        content=(EditText) findViewById(R.id.Content);    }       public void send(View view ) {        String strNo=num.getText().toString();        String strContent=content.getText().toString();                SmsManager smsManager = SmsManager.getDefault();        //如果字数超过5,需拆分成多条短信发送        if (strContent.length() > 5) {            ArrayList<String> msgs = smsManager.divideMessage(strContent);            for (String msg : msgs) {                smsManager.sendTextMessage(strNo, null, msg, null, null);                                    }        } else {            smsManager.sendTextMessage(strNo, null, strContent, null, null);        }        num.setText("");        content.setText("");                Toast.makeText(SendSMS.this, "短信发送完成", Toast.LENGTH_LONG).show();    }}

广播接收者实现短信的监听 SMSBroadcastReceiver.java

     
package com.zyw.broadcastsendsms;import java.text.SimpleDateFormat;import java.util.Date;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.SmsMessage;import android.widget.Toast;public class SMSBroadcastReceiver extends BroadcastReceiver {    public void onReceive(Context context, Intent intent) {        SmsMessage msg = null;            Bundle bundle = intent.getExtras();            if (bundle != null) {                Object[] pdusObj = (Object[]) bundle.get("pdus");                for (Object p : pdusObj) {                    msg= SmsMessage.createFromPdu((byte[]) p);                                        String msgTxt =msg.getMessageBody();//得到消息的内容                                        Date date = new Date(msg.getTimestampMillis());//时间                    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                    String receiveTime = format.format(date);                                        String senderNumber = msg.getOriginatingAddress();                                if (msgTxt.equals("Testing!")) {                    Toast.makeText(context, "success!", Toast.LENGTH_LONG)                            .show();                    System.out.println("success!");                    return;                } else {                    Toast.makeText(context, msgTxt, Toast.LENGTH_LONG).show();                    System.out.println("发送人:"+senderNumber+"  短信内容:"+msgTxt+"接受时间:"+receiveTime);                    return;                }            }            return;        }    }}

更多相关文章

  1. 【Android】基于XMAPP协议实现Android推送服务(亲测可用)
  2. 最简单的走马灯实现
  3. Android(安卓)实现气泡布局/弹窗,可控制气泡尖角方向及偏移量
  4. android UI进阶之弹窗的使用(2)--实现通讯录的弹窗效果
  5. 在android studio 2.1 实现简单的ndk
  6. Android(安卓)电话的反射调用机制实现静默接听电话
  7. Android(安卓)上实现水波特效
  8. 基于MQTT实现Android消息推送(Push)(2)
  9. android ListView中添加ImageButton按钮并绑定事件

随机推荐

  1. android UI进阶之布局的优化
  2. Android(安卓)引入FFmpeg库so文件
  3. Android WebView 访问https显示空白页
  4. Android Fragment重叠问题
  5. android在进行创建项目gen下没有自动生成
  6. 浅析Android——Android(安卓)8.0(O)后台
  7. 在android的学习中遇到的一些小问题
  8. android基础知识——android生命周期
  9. Android 系统启动分析
  10. android动画坐标定义