当前位置: 移动技术网 > IT编程>移动开发>Android > android中可以通过两种方式调用接口发送短信

android中可以通过两种方式调用接口发送短信

2019年07月24日  | 移动技术网IT编程  | 我要评论

茶杯猪,蓝屏代码0x0000008e,书魂小说网

第一:调用系统短信接口直接发送短信;主要代码如下:

复制代码 代码如下:

//直接调用短信接口发短信
smsmanager smsmanager = smsmanager.getdefault();
list<string> dividecontents = smsmanager.dividemessage(content);
for (string text : dividecontents) {
smsmanager.sendtextmessage("150xxxxxxxx", null, text, sentpi, deliverpi);
}

第二:调起系统发短信功能;主要代码如下:
复制代码 代码如下:

uri uri = uri.parse("smsto:10010");
intent it = new intent(intent.action_sendto, uri);
it.putextra("sms_body", "102");
activity.startactivity(it);

这里主要讲解第一种方法,其中大部分信息来源于互联网:
获取短信管理器
复制代码 代码如下:

smsmanager smsmanager = smsmanager.getdefault();

拆分短信内容(手机短信长度限制)
复制代码 代码如下:

list<string> dividecontents = smsmanager.dividemessage(content);

发送拆分后的内容
复制代码 代码如下:

list<string> dividecontents = smsmanager.dividemessage(content);
for (string text : dividecontents) {
smsmanager.sendtextmessage("150xxxxxxxx", null, text, sentpi, deliverpi);
}

处理返回的发送状态
复制代码 代码如下:

string sent_sms_action = "sent_sms_action";
intent sentintent = new intent(sent_sms_action);
pendingintent sentpi = pendingintent.getbroadcast(context, 0, sentintent,
0);
// register the broadcast receivers
context.registerreceiver(new broadcastreceiver() {
@override
public void onreceive(context _context, intent _intent) {
switch (getresultcode()) {
case activity.result_ok:
toast.maketext(context,
"短信发送成功", toast.length_short)
.show();
break;
case smsmanager.result_error_generic_failure:
break;
case smsmanager.result_error_radio_off:
break;
case smsmanager.result_error_null_pdu:
break;
}
}
}, new intentfilter(sent_sms_action));

处理返回的接收状态
复制代码 代码如下:

string delivered_sms_action = "delivered_sms_action";
// create the deilverintent parameter
intent deliverintent = new intent(delivered_sms_action);
pendingintent deliverpi = pendingintent.getbroadcast(context, 0,
deliverintent, 0);
context.registerreceiver(new broadcastreceiver() {
@override
public void onreceive(context _context, intent _intent) {
toast.maketext(context,
"收信人已经成功接收", toast.length_short)
.show();
}
}, new intentfilter(delivered_sms_action));

发送短信的参数说明
复制代码 代码如下:

smsmanager.sendtextmessage(destinationaddress, scaddress, text, sentintent, deliveryintent)

-- destinationaddress:目标电话号码
-- scaddress:短信中心号码,测试可以不填
-- text: 短信内容
-- sentintent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理 即,这个意图包装了短信发送状态的信息
-- deliveryintent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网