首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SMSManager android发送消息

使用SMSManager android发送消息
EN

Stack Overflow用户
提问于 2012-12-28 12:27:10
回答 1查看 2K关注 0票数 1

在我的应用程序中,我使用SMSManager在后台向特定号码发送消息。我已经注册了收件人来验证我的邮件的发送状态和传递状态。这可以很好地工作。但当我发送消息时,如果手机号码被关闭,或者SIM卡被拔出并重新打开,或者SIM卡被重新插入,我的消息就不会被发送。如何实现此功能?

SMS管理器代码

代码语言:javascript
复制
SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phonenumber, null, message, sentPI, deliveredPI);

接收者:

代码语言:javascript
复制
smsSentReceiver = new BroadcastReceiver() {


            public void onReceive(Context arg0, Intent arg1) {

                switch(getResultCode())
                {

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

                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Sms failed due to generic failure", Toast.LENGTH_LONG).show();
                    break;

                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "could not send the message due to unavailability of service.", Toast.LENGTH_LONG).show();
                    break;

                case SmsManager.RESULT_ERROR_NULL_PDU:
                    Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_LONG).show();
                    break;

                }

            }
        };

            smsDeliveredReceiver = new BroadcastReceiver () {

            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;
                }

                }

            };

            registerReceiver(smsSentReceiver, new IntentFilter(SENT));
            registerReceiver(smsDeliveredReceiver, new IntentFilter(DELIVERED ));

    }
EN

回答 1

Stack Overflow用户

发布于 2012-12-28 17:22:17

你可以使用"Broadcst Reciver“来实现这一点。当电话开机时,您将收到一个新的sim插入的宽猫reciver,并尝试使用待定意图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14064565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档