android发送短信
来源:互联网 发布:个人web服务器软件 编辑:程序博客网 时间:2024/05/17 00:53
利用类 SmsManager 发送信息, smsManager 为 SmsManager 一个默认的实例.
SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)
destinationAddress: 收件人号码 scAddress: 短信中心服务号码, 这里设置为null text: 发送内容 sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步. deliveryIntent: 对方接收状态信号(是否已成功接收).
由于需要用到系统发送信息功能, 要在AndroidMainfest.xml 加入
<uses-permission android: name="android.permisson.SEND_SMS" />
监听是否发送成功需要监听两个广播
private String SMS_SEND_ACTIOIN = "SMS_SEND_ACTIOIN";private String SMS_DELIVERED_ACTION = "SMS_DELIVERED_ACTION";
注册和解注册广播
private void registSMSSendReveiver() { /* 自定义IntentFilter为SENT_SMS_ACTIOIN Receiver */IntentFilter mFilter01;mFilter01 = new IntentFilter(SMS_SEND_ACTIOIN);mReceiver01 = new mServiceReceiver();registerReceiver(mReceiver01, mFilter01); /* 自定义IntentFilter为DELIVERED_SMS_ACTION Receiver */mFilter01 = new IntentFilter(SMS_DELIVERED_ACTION);mReceiver02 = new mServiceReceiver();registerReceiver(mReceiver02, mFilter01);}public void unregisterSMSSendReceiver() {unregisterReceiver(mReceiver01);unregisterReceiver(mReceiver02);}
发送短信
private void sendSMS(String strDestAddress, String strMessage){android.telephony.gsm.SmsManager smsManager = android.telephony.gsm.SmsManager.getDefault(); /* 创建自定义Action常数的Intent(给PendingIntent参数之用) */Intent itSend = new Intent(SMS_SEND_ACTIOIN);Intent itDeliver = new Intent(SMS_DELIVERED_ACTION); /* sentIntent参数为传送后接受的广播信息PendingIntent */PendingIntent mSendPI = PendingIntent.getBroadcast(getApplicationContext(), 0, itSend, 0); /* deliveryIntent参数为送达后接受的广播信息PendingIntent */PendingIntent mDeliverPI = PendingIntent.getBroadcast(getApplicationContext(), 0, itDeliver, 0); /* 发送SMS短信,注意倒数的两个PendingIntent参数 */if(strMessage.length() <= 70) {smsManager.sendTextMessage(strDestAddress, null, strMessage, mSendPI, mDeliverPI);}else{// SmsManger 类中 divideMessage 会将信息按每70 字分割ArrayList<String> smsDivs = smsManager.divideMessage(strMessage);for(String sms : smsDivs) {smsManager.sendTextMessage(strDestAddress, null, strMessage, mSendPI, mDeliverPI);}}}广播接收类
public class mServiceReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubtry { /* android.content.BroadcastReceiver.getResultCode()方法 */switch(getResultCode()) {case Activity.RESULT_OK: {mMakeTextToast("短信发送成功", true);Log.i("msg","短信发送成功");break;}case android.telephony.gsm.SmsManager.RESULT_ERROR_GENERIC_FAILURE: {mMakeTextToast("短信发送失败", true);Log.i("msg","短信发送失败");break;}case android.telephony.gsm.SmsManager.RESULT_ERROR_RADIO_OFF:break;case android.telephony.gsm.SmsManager.RESULT_ERROR_NULL_PDU:break;}}catch(Exception e) {e.getStackTrace();}}}
0 0
- android 中发送短信
- android中发送短信
- android发送短信
- Android 发送短信
- Android自动发送短信
- Android发送短信
- android 发送短信sms
- android 发送短信
- android发送短信
- Android短信发送器
- android 之短信发送
- Android自动发送短信
- android短信发送
- Android发送短信
- android 发送短信问题
- android 短信发送程序
- Android发送短信
- Android短信发送程序
- 安装nginx apach
- TCP端口状态说明ESTABLISHED、TIME_WAIT
- TCL打造909曲面狂欢节,多重实惠激活曲面市场
- 《web全栈工程师的自我修养》
- MySql(24)------mysql事务控制
- android发送短信
- 正则表达式
- 欢迎使用CSDN-markdown编辑器
- ListView BaseAdapter LayoutInflater
- LeetCode练习 | Maximum Subarray
- snoopy类
- 内存映射文件原理
- golang+VScode安装与配置
- cURL