Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SMS-传递意图始终返回结果OK_Android_Sms_Broadcastreceiver - Fatal编程技术网

Android SMS-传递意图始终返回结果OK

Android SMS-传递意图始终返回结果OK,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,我对一些代码有问题,需要一些帮助。我这里的代码发送一个文本。。。但我的问题是,接收文本的代码总是返回RESULT_OK。。。我可以关掉手机/尝试一个我知道不是真的号码,它总是会返回结果\u OK。。。谁能帮我找到正确的方向,有什么明显的错误吗?我用错代码了吗?任何帮助都会很好!谢谢 在我的onCreate中: sendBroadcastReceiver = new BroadcastReceiver() { public void onReceive

我对一些代码有问题,需要一些帮助。我这里的代码发送一个文本。。。但我的问题是,接收文本的代码总是返回RESULT_OK。。。我可以关掉手机/尝试一个我知道不是真的号码,它总是会返回结果\u OK。。。谁能帮我找到正确的方向,有什么明显的错误吗?我用错代码了吗?任何帮助都会很好!谢谢

在我的onCreate中:

sendBroadcastReceiver = new BroadcastReceiver()
          {

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

        deliveryBroadcastReceiver = 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(deliveryBroadcastReceiver, new IntentFilter(DELIVERED));
        registerReceiver(sendBroadcastReceiver , new IntentFilter(SENT));
如何发送短信:

private void sendSMS(String phoneNumber, String message) {
        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);
        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
    }
清单权限:

 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MyApplication" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.PERSISTENT_ACTIVITY" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.SEND_SMS" /> 


这是特定于应用程序的!其他一切正常,交付报告不成功!需要一些主要的帮助。有什么想法吗?这对SendTextMessage和SendMultiPart message都是一样的。。。我的舱单上有什么遗漏吗?

哦,是你。很抱歉真奇怪。你的代码看起来正确。请将短信添加到你文章的标题。我不知道。我刚检查过,这就是我使用的代码。(顺便说一句,您可以使用传递到
onReceive()
的上下文来祝酒。)您可以尝试在PendingEvent上设置
FLAG\u UPDATE\u CURRENT
,但我不确定这是否会对广播的结果代码产生任何影响。查看源代码:“状态报告的原始pdu位于扩展数据(“pdu”)中。”所以你可以检查一下。平台SMS应用程序可能会忽略结果代码,并遵从实际报告。