Android提供的系统服务之--SmsManager(短信管理器)

Android提供的系统服务之--SmsManager(短信管理器)

--转载请注明出处:coder-pig

SmsManager相关介绍以及使用图解:

当然为了方便各位,把代码粘一粘吧,就不用麻烦大家写代码了:

有需要的时候就复制粘贴下吧!

1)调用系统发送短信的功能:

 public void SendSMSTo(String phoneNumber,String message){
    //判断输入的phoneNumber是否为合法电话号码
    if(PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)){
		//Uri.parse("smsto") 这里是转换为指定Uri,固定写法
        Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"+phoneNumber));
        intent.putExtra("sms_body", message);
        startActivity(intent);
    }
}  

2)调用系统提供的短信接口发送短信:

public void sendSMS(String phoneNumber,String message){
    //获取短信管理器
    android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
    //拆分短信内容(手机短信长度限制),貌似长度限制为140个字符,就是
    //只能发送70个汉字,多了要拆分成多条短信发送
    //第四五个参数,如果没有需要监听发送状态与接收状态的话可以写null
    List<String> divideContents = smsManager.divideMessage(message);
    for (String text : divideContents) {
        smsManager.sendTextMessage(phoneNumber, null, text, sentPI, deliverPI);
    }
} 

处理发送状态的PendingIntent:

//处理返回的发送状态
String SENT_SMS_ACTION = "SENT_SMS_ACTION";
Intent sentIntent = new Intent(SENT_SMS_ACTION);
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,  0);
//注册发送信息的广播接收者
context.registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context _context, Intent _intent) {
        switch (getResultCode()) {
        case Activity.RESULT_OK:
			Toast.makeText(context, "短信发送成功", Toast.LENGTH_SHORT).show();
			break;
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:    //普通错误
			break;
        case SmsManager.RESULT_ERROR_RADIO_OFF:  		//无线广播被明确地关闭
			break;
        case SmsManager.RESULT_ERROR_NULL_PDU:          //没有提供pdu
			break;
		case SmsManager.RESULT_ERROR_NO_SERVICE:         //服务当前不可用
			break;
        }
    }
}, new IntentFilter(SENT_SMS_ACTION));  

处理接收状态的PendingIntent:

//处理返回的接收状态
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";
//创建接收返回的接收状态的Intent
Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,deliverIntent, 0);
context.registerReceiver(new BroadcastReceiver() {
   @Override
   public void onReceive(Context _context, Intent _intent) {
       Toast.makeText(context,"收信人已经成功接收", Toast.LENGTH_SHORT).show();
   }
}, new IntentFilter(DELIVERED_SMS_ACTION)); 
时间: 2024-10-11 02:17:53

Android提供的系统服务之--SmsManager(短信管理器)的相关文章

Android基础入门教程——10.2 SmsManager(短信管理器)

Android基础入门教程--10.2 SmsManager(短信管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本节带来的是Android中的SmsManager(短息管理器),见名知意,就是用来管理手机短信的, 而该类的应用场景并不多,一般是我们发短信的时候才会用到这个API,当然这种短信是 文字短信,对于彩信过于复杂,而且在QQ微信各种社交APP横行的年代,你会去发1块钱一条的 彩信吗?所以本节我们只讨论发送普通文字短信! 官方文档:SmsManager 1.调用系统

使用SMSManager短信管理器实现短信群发

import java.util.ArrayList; import android.os.Bundle;import android.provider.ContactsContract;import android.app.Activity;import android.app.AlertDialog;import android.app.PendingIntent;import android.content.DialogInterface;import android.content.In

使用SMSManager短信管理器发送短信

import android.os.Bundle;import android.app.Activity;import android.app.PendingIntent;import android.content.Intent;import android.telephony.SmsManager;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import

Android开发之SmsManager(短信管理器)详解

SmsManager是Android提供的另一个非常常见的服务,SmsManager提供了系列sendXxxMessage()方法用于发送短信. SmsManager:管理短信操作,如发送数据,文本和PDU短信.通过调用静态方法SmsManager.getDefault()获取此对象. Public Methods ArrayList<String> divideMessage(String text) 当短信超过SMS消息的最大长度时,将短信分割为几块. static SmsManager

Android基础入门教程——10.1 TelephonyManager(电话管理器)

Android基础入门教程--10.1 TelephonyManager(电话管理器) 标签(空格分隔): Android基础入门教程 本节引言: 本章节是Android基础入门教程的最后一章,主要讲解是一些零零散散的一些知识点,以及一些遗漏 知识点的补充,这些零散的知识点包括,各种系统服务的使用,比如本节的电话管理器,短信管理器, 振动器,闹钟,壁纸等等,还有传感器之类的东西!乱七八糟什么都有哈!好的,本节我们要学习的 是TelephonyManager,见名知义:用于管理手机通话状态,获取电

Android提供的系统服务之--AlarmManager(闹钟服务)

Android提供的系统服务之--AlarmManager(闹钟服务) --转载请注明出处:coder-pig 本节引言: 本节主要介绍的是Android系统服务中的---AlarmManager(闹钟服务), 除了开发手机闹钟外,更多的时候是作为一个全局的定时器,通常与Service 结合,在特定时间启动其他的组件!本节就来对这个AlarmManager来进行解析 同时通过小闹钟与自动换壁纸来演示这个AlarmManager的用法,好了,开始本节的 内容吧! 本节正文: 1.概念与相关属性方法

Android提供的系统服务之--Vibrator(振动器)

Android提供的系统服务之--Vibrator(振动器) --转载请注明出处:coder-pig Vibrator简介与相关方法: 简单demo--设置频率不同的振动器 对于Vibrator用的最广泛的莫过于所谓的手机按摩器类的app,在app市场一搜,一堆,笔者随便下了几个下来瞅瞅 ,都是大同小异的,这点小玩意竟然有8W多的下载量...好吧,好像也不算多,不过普遍功能都是切换振动频率来完成 所谓的按摩效果,是否真的有效就不得而知了,那么接下来 我们就来实现一个简单的按摩器吧! 核心其实就是

Android提供的系统服务之--TelephonyManager(电话管理器)

Android提供的系统服务之--TelephonyManager(电话管理器) 转载请注明出处--coder-pig TelephonyManager的作用: 用于管理手机通话状态,获取电话信息(设备信息.sim卡信息以及网络信息), 侦听电话状态(呼叫状态服务状态.信号强度状态等)以及可以调用电话拨号器拨打电话! 如何获得TelephonyManager的服务对象: TelephonyManager tManager = (TelephonyManager)getSystemService(

Android从普通发送和接收短信到对短信进行拦截

概述: 说实话,关于Android中对短信的一些相关操作是一个比较入门的东西.那我现在还要来写这一篇博客的原因只是因为现在开发中有相关内容,而又想将这些东西分享给更多的人来学习,同时在以后对Android系统的短信进行其他学习的时候也就放在这里做一个记录了,于是就写了这篇啰嗦的文章.如果你觉得这是一个不错的东西,欢迎收藏,以便在以后更方便地查看本人在此篇文章中更新的内容.下面我就从标题中的三个方面来对Android系统中的短信操作进行一个简单地学习. 短信的发送 由于Android中对短信发送方