Android 通过编程发送短信(未获取送达状态)

Android 通过编程发送短信(未获取送达状态),android,android-intent,sms,Android,Android Intent,Sms,可能重复: 我在逐字逐句地使用,除了我改变了这个事实 import android.telephony.gsm.SmsManager; 到 短信发送正常,但我没有收到发送到网络的TOAST消息。我正在尝试将SMS集成到我的应用程序中,这一点很重要。我相信这是可以做到的,因为股票短信应用程序如何知道何时停止显示“发送圈”。相关代码部分如下所示: //---when the SMS has been delivered--- registerReceiver(new Bro

可能重复:

我在逐字逐句地使用,除了我改变了这个事实

   import android.telephony.gsm.SmsManager;

短信发送正常,但我没有收到发送到网络的TOAST消息。我正在尝试将SMS集成到我的应用程序中,这一点很重要。我相信这是可以做到的,因为股票短信应用程序如何知道何时停止显示“发送圈”。相关代码部分如下所示:

    //---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));        

我使用的是果冻豆ROM,但我相信我不久前在姜饼和ICS上测试了相同的片段,得到了相同的结果。API是否已更改,或者样本是否存在问题?如果有帮助的话,我正在测试Sasmsung GSIII。我以前的测试是在Epic上进行的。

使用Toast进行测试可能会让事情变得混乱,因为根据具体情况,可能不会发出Toast通知。尝试将其更改为日志调用,或使用调试器查看该部分是否被调用。

在onReceive()方法中执行Log.d,查看getResultCode()是否被调用或得到了什么值
    //---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));