追踪和确认SMS消息传递
来源:互联网 发布:工商行政管理网络教学 编辑:程序博客网 时间:2024/06/16 10:09
为了追踪发出的SMS消息的传送和成功送达,实现并注册Broadcast Receiver来监听你在sendTextMessage方法中传入的PendingIntent的动作。
第一个PendingIntent参数,sentIntent,当消息发送成功或发送失败时触发。Broadcast Receiver接收到这个Intent时得到的结果值将是下面中的一个:
❑ Activity.RESULT_OK
表示成功发送。
❑ SmsManager.RESULT_ERROR_GENERIC_FAILURE
表示一个未指定的失败。
❑ SmsManager.RESULT_ERROR_RADIO_OFF
表示无线连接关闭。
❑ SmsManager.RESULT_ERROR_NULL_PDU
表示一个PDU失败。
第二个PendingIntent参数,deliveryIntent,仅在当目标用户接收到你的SMS消息后触发。
接下来的代码片段显示了发送一个SMS短信和监视短信的传送和成功送达的典型代码:
String SENT_SMS_ACTION = “SENT_SMS_ACTION”;String DELIVERED_SMS_ACTION = “DELIVERED_SMS_ACTION”;// Create the sentIntent parameterIntent sentIntent = new Intent(SENT_SMS_ACTION);PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(),0,sentIntent,0);// Create the deliveryIntent parameterIntent deliveryIntent = new Intent(DELIVERED_SMS_ACTION);PendingIntent deliverPI = PendingIntent.getBroadcast(getApplicationContext(),0,deliveryIntent,0);// Register the Broadcast ReceiversregisterReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context _context, Intent _intent) {switch (getResultCode()) {case Activity.RESULT_OK:[… send success actions … ]; break;case SmsManager.RESULT_ERROR_GENERIC_FAILURE:[… generic failure actions … ]; break;case SmsManager.RESULT_ERROR_RADIO_OFF:[… radio off failure actions … ]; break;case SmsManager.RESULT_ERROR_NULL_PDU:[… null PDU failure actions … ]; break;}}},new IntentFilter(SENT_SMS_ACTION));registerReceiver(new BroadcastReceiver() {@Overridepublic void onReceive(Context _context, Intent _intent) {[… SMS delivered actions … ]}},new IntentFilter(DELIVERED_SMS_ACTION));// Send the messagesmsManager.sendTextMessage(sendTo, null, myMessage, sentPI, deliverPI);
监视发出的SMS消息
Android调试支持在多个模拟器实例之间发送SMS消息。从一个模拟器发送一个SMS到另一个,指定目标模拟器的端口号作为发送新消息的“to”地址。
Android会自动地将你的消息发送到目标模拟器实例上,在那里,消息会像一般SMS一样被处理。
确认短信的大小
SMS消息一般限制在160个字符,所以,更大的消息需要分解成一系列细小部分。SMS Manager包含divideMessage方法,它接收一个字符串并将其分解成一个消息数组,其中的每个字符串都小于允许的长度。使用sendMultipartTextMessage来发送消息数组,如下面的片段所示:
ArrayList<String> messageArray = smsManager.divideMessage(myMessage);ArrayList<PendingIntent> sentIntents = new ArrayList<PendingIntent>();for (int i = 0; i < messageArray.size(); i++)sentIntents.add(sentPI);smsManager.sendMultipartTextMessage(sendTo,null,messageArray,sentIntents, null);
sendMultipartTextMessage方法中的sentIntent和deliveryIntent参数是ArrayList类型,它可以为每个消息部分指定不同的PendingIntent。
- 追踪和确认SMS消息传递
- 追踪和确认SMS消息传递
- RabbitMQ集群和消息传递确认机制
- rabbitmq消息重新入队和消息确认
- Handler消息追踪和源码解析
- jquery确认框和消息提示
- RabbitMQ 消息轮询和消息确认机制
- RabbitMQ 消息轮询和消息确认机制
- 监听SMS消息(转)
- 监听SMS消息
- RabbitMQ消息确认(发送确认,接收确认)
- 消息传递和 Java 消息服务(JMS)
- MFC-消息映射和消息传递
- MFC-消息映射和消息传递
- 消息传递和 Java 消息服务(JMS)
- 消息传递和 Java 消息服务(JMS)
- WINCE下消息传递和消息队列
- 对象、消息传递和方法
- 分析第一个Qt程序代码
- 物电 电气工程及其自动化 邢英健 15050341034
- css绝对定位和相对定位
- Android开发 时间戳转换工具类
- 139. Word Break
- 追踪和确认SMS消息传递
- JavaScript 中2个等号与3个等号的区别
- Qt窗口之QMainWindow、QDialog、QWidget
- Poj 1135 Domino Effect【很有意识的最短路+SPFA】
- linux sed 批量替换字符串
- Square全家桶正传——偷懒神器ButterKnife及其附属插件的使用
- Android 自定义View——View 基础知识
- LeetCode OJ 347. Top K Frequent Elements hashmap+排序求解
- Qt信号和槽