Android SMS-在应用程序未运行时处理传递报告
我有一个应用程序,其中一条短信被发送到一个特定的号码和交付报告将被跟踪。我正在使用来自SO链接的代码,当应用程序运行时,交付报告会很好 我如何处理这种情况,例如,我发送短信的号码被关闭(或)不在网络区域(或)短信发送由于某种原因被延迟。现在当短信发送时,我会收到发送报告,但是,我不知道如何处理这种情况 有人能给我指一下这个方向吗 注意:此代码位于片段中 我的代码到现在为止: 发送SMS方法:Android SMS-在应用程序未运行时处理传递报告,android,smsmanager,Android,Smsmanager,我有一个应用程序,其中一条短信被发送到一个特定的号码和交付报告将被跟踪。我正在使用来自SO链接的代码,当应用程序运行时,交付报告会很好 我如何处理这种情况,例如,我发送短信的号码被关闭(或)不在网络区域(或)短信发送由于某种原因被延迟。现在当短信发送时,我会收到发送报告,但是,我不知道如何处理这种情况 有人能给我指一下这个方向吗 注意:此代码位于片段中 我的代码到现在为止: 发送SMS方法: private void sendSMS(JSONObject object, String sm
private void sendSMS(JSONObject object, String sms_message) {
try {
PendingIntent sentPI = PendingIntent.getBroadcast(activity, 0, new Intent(
SENT), 0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(activity, 0,
new Intent(DELIVERED), 0);
activity.registerReceiver(sendBroadcastReceiver, new IntentFilter(SENT));
activity.registerReceiver(deliveryBroadcastReciever, new IntentFilter(DELIVERED));
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(object.getString("official_mobile"), null, sms_message, sentPI, deliveredPI);
} catch (Exception e) {
e.printStackTrace();
}
}
广播接收机:
class sentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Log.d(Const.DEBUG, "Message Sent Successfully");
Toast.makeText(activity, "SMS Sent Successfully", Toast.LENGTH_SHORT)
.show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Log.d(Const.DEBUG, "Message Sending Failed");
Toast.makeText(activity, "Generic failure",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Log.d(Const.DEBUG, "Message Sending Failed");
Toast.makeText(activity, "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Log.d(Const.DEBUG, "Message Sending Failed");
Toast.makeText(activity, "Null PDU", Toast.LENGTH_SHORT)
.show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Log.d(Const.DEBUG, "Message Sending Failed");
Toast.makeText(activity, "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
}
class deliverReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Log.d(Const.DEBUG, "Message Delivered Successfully");
Toast.makeText(activity, "SMS Delivered",
Toast.LENGTH_SHORT).show();
break;
case Activity.RESULT_CANCELED:
Log.d(Const.DEBUG, "Message Delivery Failed");
Toast.makeText(activity, "SMS Delivery Failed.",
Toast.LENGTH_SHORT).show();
break;
}
}
}