当前位置:  首页  >  PHP资讯  >  业界资讯

Android创建简单发送和接收短信应用

收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android作为出色的智能手机操作系统,自然也少不了在这方面的支持。今天我们开始自己创建一个简单的发送和接收短信的应用,需要的朋友可以参考下

本文实例为大家分享了Android创建发送和接收短信应用的简单实现过程,供大家参考,具体内容如下

一、接收短信

项目的结构如下:一个简单的接收和发送短信的功能

1、定义一个接收短信的广播:当手机接收到一条短信的时候,系统会发出一条值为android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里携带着与短信相关的所有数据。

 // 接收短信的广播 class MessageReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Object[] pdus = (Object[]) bundle.get("pdus"); // 提取短信消息 SmsMessage[] messages = new SmsMessage[pdus.length]; for (int i = 0; i  

2、 注册广播,这里我们动态在代码中注册:

 // 注册接收广播 IntentFilter intentFilter1 = new IntentFilter(); intentFilter1.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); intentFilter1.addAction("android.provider.Telephony.SMS_RECEIVED"); messageReceiver = new MessageReceiver(); registerReceiver(messageReceiver, intentFilter1); 

3、 声明权限:

   

二、发送短信

1、 发送短信:用getDefault方法得到SmsManager对象,调用sendTextMessage方法发送短信

 // 发送短信 public void send(View view) { SmsManager smsManager = SmsManager.getDefault(); String destinatiOnAddress= "15527100207"; String text = "我爱你!"; Intent intent1 = new Intent(SENT_SMS_ACTION); PendingIntent sentIntent = PendingIntent.getBroadcast(this, 0, intent1, 0); Intent intent2 = new Intent(DELIVERY_SMS_ACTION); PendingIntent deliveryIntent = PendingIntent.getBroadcast(this, 0, intent2, 0); smsManager.sendTextMessage(destinationAddress, null, text, sentIntent, deliveryIntent); // aidl服务,进程间的通信 } 

 我们具体了解一下sendTextMessage方法一个参数的含义:

 public void sendTextMessage(String destinationAddress, String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent) destinationAddress: // 目的地,也就是对方的手机号 scAddress: // 服务中心地址,为空的话就是默认的SMSC text: // 发送消息的具体内容 sentIntent: // 当消息成功或者失败发送时,就发起这个广播 deliveryIntent: // 当消息到达目的地时,就发起这个广播 

 2、 sentIntent的广播:

 // 发送短信的状态广播 class MessageBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 一个10位数的号码发送,也能成功,但是对方没有接收短信。 if (getResultCode() == RESULT_OK) { Toast.makeText(MainActivity.this, "发送成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, "发送失败!", Toast.LENGTH_SHORT).show(); } } } 

3、 deliveryIntent的广播:

 // 当消息被传递给收件人时 class DeliveryBroadcast extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(MainActivity.this, "对方接收短信成功!", Toast.LENGTH_SHORT).show(); } } 

以上就是本文的全部内容,希望对大家的学习有所帮助。

内容推荐:免费高清PNG素材下载
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4