`

短信的收发简单Demo

阅读更多
短信的发送:
发送短信相当的简单,只需要几行代码,如下:
参数phoneNumber和MsgStr均是String类型,表示接收方的电话号码和短信内容
SmsManager sms = SmsManager.getDefault();
PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent(), 0);
sms.sendTextMessage(phoneNumber, null, MsgStr, pi, null);



短信的接收:
MainActivity:
package com.amaker.sms;

import android.app.Activity;
import android.content.IntentFilter;
import android.os.Bundle;

public class MainActivity extends Activity {
    //接收短信的action
	public static final String MY_ACTION = "android.provider.Telephony.SMS_RECEIVED";
	MyReceiver receiver = new MyReceiver();
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    
   /**
    * 注册接收短信的广播接收器
    * 这里采用了动态的方式注册,也可以在AndroidManifest.xml里静态注册
    */
    
    @Override
    protected void onResume() {
    	super.onResume();
    	
    	IntentFilter filter = new IntentFilter();
    	filter.addAction(MY_ACTION);
    	registerReceiver(receiver, filter);
    }
    /**
     * 取消接收短信的广播接收器
     */
    @Override
    protected void onPause() {
    	super.onPause();
    	unregisterReceiver(receiver);
    }
}


MyReceiver:
package com.amaker.sms;

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 MyReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		SmsMessage sm;
		Bundle bundle = intent.getExtras();
		Object[] pdus = (Object[]) bundle.get("pdus");
		SmsMessage[] messages = new SmsMessage[pdus.length];
		
		if(bundle!=null){
			for (int i = 0; i < pdus.length; i++) {
				messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
			}
		}
		for(SmsMessage currentMessage:messages){
			sm = currentMessage;
			
			String number = sm.getDisplayOriginatingAddress();
			String content = sm.getDisplayMessageBody();
			
			Toast.makeText(context, number+":"+content, Toast.LENGTH_LONG).show();
		}
	}

}


AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.amaker.sms"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <!--<!->添加发送短信与接收短信的权限</!>
    -->
    <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
</manifest>
分享到:
评论

相关推荐

    简单广播收发demo

    "简单广播收发demo"是一个专为初学者设计的示例,它展示了如何创建、发送和接收广播的基本过程。下面我们将详细探讨广播的相关知识点。 1. **广播的基本概念**: 广播Intent是Android系统中的一种特殊Intent,用于...

    VB_DEMO.rar_DEMO_vb 发短信_vb短信_发短信 vb_收发短信

    在这个"VB_DEMO.rar_DEMO_vb 发短信_vb短信_发短信 vb_收发短信"的示例中,可能包含了一个简单的VB应用程序,演示了如何使用TaoModual_OCX控件进行短信收发。压缩包内的"www.pudn.com.txt"可能是相关教程或者说明...

    java短信猫收发短信的例子

    Java短信猫收发短信的例子是基于Java编程语言实现的一个实用工具,主要用于与短信猫设备进行交互,实现短信的发送和接收功能。短信猫是一种硬件设备,通常通过USB或串口连接到计算机,使得电脑能够通过GSM网络发送和...

    短信猫demo

    短信猫,又称为GSM Modem,是一种能够通过GSM网络收发短信和拨打电话的硬件设备。它通常连接到计算机的串行端口(COM口)或USB口,通过AT指令与软件应用程序进行通信。短信猫广泛应用于物联网、远程监控、自动化系统...

    短信猫Demo

    在本项目中,C#被用来创建一个应用程序,该程序能够控制短信猫,实现短信的收发功能。 在C#中,与短信猫交互通常需要以下步骤: 1. **设备连接**:首先,需要识别并连接到短信猫。这通常通过串行端口(COM口)或...

    C#_DEMO_C#dtu_C#_短信_dtu_DEMO_

    使用c#完成短信的收发。使用短信DTU,使用手机卡,可用于服务器平台的报警。*长短信:中文长度不受70汉字限制*GBK编码:支持GBK编码,发中文不需转UNICODE*跨平台:支持JAVA,提供源代码*免维护:带断电开关,可远程...

    vc++6.0编写的手机短信收发

    vc_demo 是一个简单的开发库测试程序 请用户注意第197行的测试端口定义和 测试速率,一般本公司出品的modem出厂 速率为115200,端口号则需要用户根据 实际情况更改

    短信猫 AT 发送 接收短信 包括长短短信

    短信猫 AT 发送 接收短信 长短短信 短信猫 AT 发送 接收短信 长短短信 短信猫 AT 发送 接收短信 长短短信 一个简单的DEMO 本人测试

    基于Delphi的各类短信发送接收原码打包上传

    这些源码涵盖了建立串口连接、发送AT命令、解析响应、处理短信收发的整个流程。 3. **阿里大于**:阿里大于是阿里巴巴集团提供的云通讯服务,提供包括短信在内的多种通信功能。使用阿里大于服务,开发者可以方便地...

    短信猫开发接口程序分类终稿.pdf

    此外,彩信通数据库接口版3.0是一个全面的解决方案,不仅支持短信收发,还包括彩信功能,兼容多种数据库系统,如Access、MS SQL Server、Oracle和MySQL。它还提供了自动创建数据库表的脚本,使得集成过程更加简便。 ...

    Android从零开始—电话+短信(二十)

    我们将首先介绍Android的电话API,然后讲解如何处理短信,并提供一个简单的Demo43示例来帮助理解这些概念。 **电话管理** 1. **电话API**:Android提供了PhoneStateListener接口,用于监听手机的状态变化,如通话...

    飞鸽传书聊天传东西方便

    飞鸽传书(IP Messenger,简称IPMSG)就是这样一款深受用户喜爱的聊天工具,它以其简单易用、快速传输的特点,在众多同类软件中脱颖而出。 飞鸽传书的主要功能是提供局域网内的即时通讯服务,特别适合在同一网络...

    sms.rar_sms

    描述中提到,“可以收发短信,很方便”,这暗示我们这个系统可能包含了一个用户友好的界面或者API,使得短信通信的操作变得简单易行。同时,它使用了C++进行开发,C++是一种强大的、面向对象的编程语言,常用于构建...

    simcom900参考程序

    SIM900模块是一款广泛应用于物联网、远程控制、数据传输等领域的通信模块,它支持2G网络,能够进行语音通话、短信收发以及数据传输。 描述中提到“写的比较详细,值得参考”,暗示了这个压缩包可能包含了一个详尽的...

    android发送AT命令

    AT命令允许设备进行数据传输、网络注册、短信收发等操作。本篇文章将详细介绍如何在Android应用中发送AT命令。 一、AT命令的基本概念 AT命令由“AT”开头,后面跟着一系列可选的参数,用于控制和查询通信设备的...

    sim900TCPIP程序

    SIM900模块是GSM/GPRS模块的一种,常用于实现嵌入式设备的无线通信功能,如短信收发和数据传输。在描述中提到,这个程序是学习GPRS模块(即SIM900)如何进行TCP/IP传输的好资料,特别适合那些对单片机TCP/IP通信感...

    pda手持终端

    - **通信功能**:许多PDA内置了电话模块,支持语音通话和短信服务,部分还具备无线网络连接,可以进行电子邮件收发和网页浏览。 - **数据存储与处理**:通过扩展插槽,PDA可以增加存储容量,同时配备计算器、文档...

    JXARM9-2410-3用户手册

    ### JXARM9-2410-3用户手册知识...- **GPRS相关实验**(gprs):包括主叫、被叫、短信收发等功能的实验。 以上内容详细介绍了JXARM9-2410-3教学实验系统的组成、软件配置以及实验清单,为用户提供了全面的指南和支持。

Global site tag (gtag.js) - Google Analytics