在我的Application
中,我使用SMS Manager
发送短信。为了检查消息是否发送,我使用Toast
。而不是Toast
,我想得到SMS Delivery Report
。我尝试了许多例子,但有一个流程不显示交付报告,如如果我的余额为0时,我的代码发送短信,我想找到短信发送失败交付报告时,我的余额为0。
编码:
String phoneNo = phno.getText().toString();
String smsBody = body.getText().toString();
//Selected Messages to report to 1909
{
try
{
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, smsBody, null, null);
Toast.makeText(getApplicationContext(), "SMS Sent to: "+phoneNo,Toast.LENGTH_SHORT).show();
}
catch (Exception e)
{
//Error Occurred if No Messages Selected
Toast.makeText(getApplicationContext(),"SMS failed, please try again later!",Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
}
2条答案
按热度按时间cbeh67ev1#
试试这个链接,
SMS Delivery Report in Android
别忘了在清单中添加这些权限
zvokhttg2#
使用此方法发送SMS
例如
其中deliveredPI是PendingIntent
最后一个参数是deliveryIntent,它由Android在“消息成功传递”到接收者时触发。
所以现在你需要有一个BroadcastReceiver来获得这个消息。