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