`
gryphone
  • 浏览: 433477 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

短信发送状态侦听

 
阅读更多

短信发送后回调提示

 

 

信息发送后 可能有如下需求: 通知用户信息已发送 那如何实现?

 

 

SmsManager.sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

 

1. 传入参数:sentIntent

2. 注册BroadcastReceiver 用于接受sentIntent

 

 

 

[代码]

 

 

public void sendSMS(String phoneNumber, String message) {        
        String SENT = "SMS_SENT";
        String DELIVERED = "SMS_DELIVERED";
 
        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
            new Intent(SENT), 0);
 
        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
            new Intent(DELIVERED), 0);
 
        //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(), "SMS sent", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                        Toast.makeText(getBaseContext(), "Generic failure", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NO_SERVICE:
                        Toast.makeText(getBaseContext(), "No service", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_NULL_PDU:
                        Toast.makeText(getBaseContext(), "Null PDU", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case SmsManager.RESULT_ERROR_RADIO_OFF:
                        Toast.makeText(getBaseContext(), "Radio off", 
                                Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        }, new IntentFilter(SENT));
 
        //---when the SMS has been delivered---
        registerReceiver(new BroadcastReceiver(){
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                switch (getResultCode())
                {
                    case Activity.RESULT_OK:
                        Toast.makeText(getBaseContext(), "SMS delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;
                    case Activity.RESULT_CANCELED:
                        Toast.makeText(getBaseContext(), "SMS not delivered", 
                                Toast.LENGTH_SHORT).show();
                        break;                        
                }
            }
        }, new IntentFilter(DELIVERED));        
 
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);    
        
    }

 

 

 

代码也比较简单 故此不多说 大家自己看看就能明白~

 

 

最后 别忘了回帖哦 相互交流

分享到:
评论
5 楼 xiangdream 2011-09-07  
good, thanks for your sharing
4 楼 lmhdlcode 2010-08-05  
如何在

case Activity.RESULT_OK: 
                        Toast.makeText(getBaseContext(), "SMS delivered",  
                                Toast.LENGTH_SHORT).show(); 
                        break; 

获得电话号码

判断一下哪个电话短信发送成功了。
3 楼 lp518 2010-07-10  
gryphone 写道
lp518 写道
请问一下,这个能侦听到模拟器中自带的Message中发送短信的事件吗?发件箱中存没存收件人的号码呀?谢谢~

不行 因为我的这个方法是通过Pe那就是:dingIntent来做到的 不过我的另一篇文章可以 那就是:SMS管理 那个是通过sms数据库监听的

谢谢~
2 楼 gryphone 2010-06-15  
lp518 写道
请问一下,这个能侦听到模拟器中自带的Message中发送短信的事件吗?发件箱中存没存收件人的号码呀?谢谢~

不行 因为我的这个方法是通过Pe那就是:dingIntent来做到的 不过我的另一篇文章可以 那就是:SMS管理 那个是通过sms数据库监听的
1 楼 lp518 2010-06-14  
请问一下,这个能侦听到模拟器中自带的Message中发送短信的事件吗?发件箱中存没存收件人的号码呀?谢谢~

相关推荐

    AT指令大全(包含所有AT指令)

    * AT+FRS:停止侦听网络并等待相应时间向 DTE 发送报告 传真指令(CLASS 2) * AT+FDT:开始传输数据 * AT+FDR:开始接收数据 * AT+FET:设置后面是否还有任务进行 * AT+FPTS:设置前面发送数据质量 * AT+FK:停止...

    嵌入式AT指令开发资料-AT指令中文说明

    * AT+FRS:停止侦听网络并等待相应时间向 DTE 发送报告 传真指令(CLASS 2) AT 指令说明包括: * AT+FDT:开始传输数据 * AT+FDR:开始接收数据 * AT+FET:设置后面是否还有任务进行 * AT+FPTS:设置前面发送...

    Windows CE短消息API的使用

    - **消息发送确认**:SMS还具备发送确认功能,即发送方可以接收到一条确认消息,表明短信已被接收方的设备成功接收,这一过程也被称为“短信回执”或“状态报告”。 #### SMS消息的发送和接收 在支持GSM功能的设备...

    VB串口通信源码210个

    016、VB编写的串口短信发送程序,需要数据线支持 017、VB编写的串口通信程序,实现多机通信 018、VB编写的串口通信程序,主要用于上位机与下位机间的通信 019、VB编写的串口通信程序界面参考网上的程序较简单 020、VB...

    Neoway-N720-AT命令手册.pdf

    - **3.17 接受侦听请求($MYNETACCEPT)** - **3.18 开启透明传输服务($MYNETCREATE)** - **3.19 启动FTP服务** #### 四、文档结构 文档按章节组织,分为开机使用说明、标准命令、短消息服务指令和扩展AT命令...

    And-Then-Delivery:送货网站

    4. **通知系统**:通过邮件、短信或推送通知用户订单进度,提高客户满意度。 5. **用户体验设计**:优化用户界面和交互,使用户能够轻松跟踪订单状态,方便地联系配送员。 综上所述,"And-Then-Delivery: 送货网站...

    【ASP.NET编程知识】Asp.Net Core轻松学之利用日志监视进行服务遥测详解.docx

    总结,通过 ASP.NET Core 中的 EventListener 机制,开发者可以构建强大的服务遥测系统,以实时监控应用程序的运行状态,从而提高故障排查效率,优化系统性能,并确保服务的稳定性。结合配置注入和日志聚合工具,...

    Vue中添加手机验证码组件功能操作方法

    在实际开发中,我们可能还需要编写发送短信验证码的后端请求逻辑,并处理相应的响应。 5. 父子组件通信:在本例中,手机验证码组件通常作为子组件被嵌入到父组件中。父组件需要通过属性(props)向下传递数据给子组件...

    Listener Manager-开源

    5. **警报和通知**:当服务器状态异常时,通过电子邮件、短信或其他方式发送警报。 由于我们只有一个文件名"ListenerManager",具体的实现细节和使用方法需要进一步研究源代码或查阅项目的文档。不过,从描述中我们...

    vc++ 开发实例源码包

    ListenSocket.h 侦听接口类文件 ChatSocket.h 聊天接口类文件 SettingDlg.h 设置对话框类文件 LocalInfoDlg.h 查看本地信息对话框类文件 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 如题。 FTP、...

Global site tag (gtag.js) - Google Analytics