Android 广播接收机不';t显示短信未发送或未发送
当使用broadcastreceiver检查sms状态时,它在发送sms时显示toast,但在未发送或发送sms时不显示任何内容(im通过输入一个突然的数字进行测试)。 我使用的代码是我在每个网站上看到最多的一个检查短信发送状态的代码。但我的代码只显示短信成功发送时的状态。 谁能知道我做错了什么? 我在doInBackground()中有这个方法,所以很明显我使用的是AsyncTaskAndroid 广播接收机不';t显示短信未发送或未发送,android,sms,Android,Sms,当使用broadcastreceiver检查sms状态时,它在发送sms时显示toast,但在未发送或发送sms时不显示任何内容(im通过输入一个突然的数字进行测试)。 我使用的代码是我在每个网站上看到最多的一个检查短信发送状态的代码。但我的代码只显示短信成功发送时的状态。 谁能知道我做错了什么? 我在doInBackground()中有这个方法,所以很明显我使用的是AsyncTask public void send_SMS(String list, String msg, AtaskClas
public void send_SMS(String list, String msg, AtaskClass task)
{
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
SmsManager sms = SmsManager.getDefault();
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 context, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(context, "SMS sent",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(context, "Generic failure", Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(context, "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(context, "Null PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(context, "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(SENT));
//---when the SMS has been delivered---
registerReceiver(new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent arg1) {
switch (getResultCode())
{
case Activity.RESULT_OK:
Toast.makeText(context, "SMS delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Toast.makeText(context, "SMS not delivered",
Toast.LENGTH_SHORT).show();
break;
}
}
}, new IntentFilter(DELIVERED));
StringTokenizer st = new StringTokenizer(list,",");
int count= st.countTokens();
int i =1;
count = 1;
while(st.hasMoreElements())
{
// PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this, SMS.class),0);
String tempMobileNumber = (String)st.nextElement();
//SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(tempMobileNumber, null, msg , sentPI, deliveredPI);
Double cCom = ((double)i/count) * 100;
int j = cCom.intValue();
task.doProgress(j);
i++;
count ++;
}
// class ends
}
所以它没有显示祝酒词-Onfire吗?如果你在那里做了一个Log.d,它被记录了吗?我肯定收到了火灾,因为当我给它一个正确的号码时,我总是收到一个“短信发送”和“短信发送”的祝酒词。我还试着用Log.d。。。但Log.d仅显示“RESULT_OK”,表示发送sms时,但对于所有其他错误,它不会被记录。是不是当短信发送时,它会立即收到结果并显示短信已发送,但当它尚未发送时,它需要时间来弄清楚???如果是,我如何测试它:(