Android 发短信功能实现
在自己的应用增加发短信功能有两种方式:
1,跳转到系统短信页面发送,调用如下代码即可。
Intent intent = new Intent(Intent.ACTION_SENDTO, Uri
.parse("smsto:" + telnum));
// 如果需要将内容传过去增加如下代码
intent .putExtra("sms_body", body);
startActivity(intent);
2,调用系统发短信接口sendTextMessage。activity如下:
布局文件就是两个输入框和一个发送按钮。
AndroidManifest.xml需要权限
<uses-permission android:name="android.permission.SEND_SMS" />
public class MainTestActivity extends Activity {
private static final String SENT_SMS_ACTION = "demo_sms_send_action";
private static final String KEY_PHONENUM = "phone_num";
private EditText mPhoneNumberEdit;
private EditText mContentEdit;
private Button mSendBtn;
protected Context mContext;
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_test);
mContext = this;;
mPhoneNumberEdit = (EditText) findViewById(R.id.phonenumber);
mContentEdit = (EditText) findViewById(R.id.content);
mSendBtn = (Button) findViewById(R.id.send);
mSendBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String phone = mPhoneNumberEdit.getText().toString().trim();
String content = mContentEdit.getText().toString().trim();
if (TextUtils.isEmpty(phone) && TextUtils.isEmpty(content)) {
Toast.makeText(mContext, "input message!", Toast.LENGTH_LONG).show();
return;
}
sendSMS(phone,content);
}
});
//注册短信发送状态的广播
mReceiver = new SMSSendResultReceiver();
IntentFilter filter = new IntentFilter(SENT_SMS_ACTION);
registerReceiver(mReceiver, filter);
}
/**
* 直接调用短信接口发短信 如果群发可以循环调用
* @param phoneNumber
* @param message
*/
public void sendSMS(String phoneNumber,String message){
//获取短信管理器
android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
//拆分短信内容(手机短信长度限制)
List<String> divideContents = smsManager.divideMessage(message);
Intent itSend = new Intent(SENT_SMS_ACTION);
itSend.putExtra(KEY_PHONENUM, phoneNumber);
PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, itSend, PendingIntent.FLAG_UPDATE_CURRENT);
for (String text : divideContents) {
smsManager.sendTextMessage(phoneNumber, null, text, sentPI, null);
}
}
SMSSendResultReceiver mReceiver;
// 监听短信发送状态
class SMSSendResultReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if (SENT_SMS_ACTION.equals(intent.getAction())) {
String phoneNum = intent.getStringExtra(KEY_PHONENUM);
switch(getResultCode())
{
case Activity.RESULT_OK:
// 发送成功
Toast.makeText(context, "Send Message to "+phoneNum+" success!", Toast.LENGTH_LONG).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
case SmsManager.RESULT_ERROR_RADIO_OFF:
case SmsManager.RESULT_ERROR_NULL_PDU:
default:
// 发送失败
Toast.makeText(context, "Send Message to "+phoneNum+" fail!", Toast.LENGTH_LONG).show();
break;
}
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mReceiver != null) {
unregisterReceiver(mReceiver);
}
}
}
sendTextMessage的参数说明:
public void sendTextMessage(String destinationAddress,
String scAddress, String text,PendingIntent sentIntent, PendingIntent deliveryIntent)
destinationAddress: 收件人地址
scAddress: 短信中心号码,null为默认中心号码
sentIntent: 当消息发出时,成功或者失败的信息报告通过PendingIntent来广播。如果该参数为空,则发信程序会被所有位置程序检查一遍,这样会导致发送时间延长。
deliveryIntent: 当消息发送到收件人时,该PendingIntent会被广播。pdu数据在状态报告的extended data ("pdu")中。
Android 发短信功能实现相关推荐
- android 自动发彩信,Android编程实现定时发短信功能示例
本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...
- android+发短信示例,Android编程实现定时发短信功能示例
本文实例讲述了Android编程实现定时发短信功能.分享给大家供大家参考,具体如下: 第一,要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中 ...
- 小程序短信验证码登录,1分钟实现小程序发短信功能,借助云开发10行代码实现短信验证码登录小程序
老规矩先看效果图 普通短信 验证码短信 今天被云开发官方告知,云开发支持发短信功能了,然后就迫不及待的来尝下鲜. 进入官方文档一看,云开发给咱们开发者的福利还真不小. 不仅仅可以很方便的使用短信功能, ...
- 苹果七绕过基带激活2020_苹果研发无信号发短信功能
据外媒报道,苹果最近停止了一个极好的项目开发,该项目原本是指苹果与英特尔合作开发的新技术,可以让iPhone绕过蜂窝网络的远程无线电波,在手机无服务的情况下与其他iPhone互发短信.类似于对讲机,只 ...
- iOS调用系统发短信功能详解
iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信.2,程序内调用系统发短信.第二种的好处是用户发短信之后还可以回到app.这对app来说非常重要. 程序外调用系统发短信 这个方法其实很 ...
- 前端H5唤起手机打电话(拨号)和发短信功能
1.拨打电话 2.发送短信 3.移动web页面自动探测电话号码 4.使用wtai协议进行拨打电话 5.关于微信页面出现屏蔽的情况,采用以下解决方案 在移动端页面,有时候我们需要唤起用户手机的打电话功能 ...
- H5唤起手机打电话(拨号)和发短信功能
H5唤起手机打电话(拨号)和发短信功能 拨打电话 发送短信 移动web页面自动探测电话号码 使用wtai协议进行拨打电话 关于微信页面出现屏蔽的情况,采用以下解决方案 在移动端页面,有时候我们需要唤起 ...
- Java实现阿里云发短信功能
一 点睛 1 阿里云短信开发文档 https://helpcdn.aliyun.com/document_detail/55284.html 2 阿里云AK申请 https://usercenter. ...
- iOS开发之系统发短信功能详解
iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信.2,程序内调用系统发短信.第二种的好处是用户发短信之后还可以回到app.这对app来说非常重要. 程序外调用系统发短信 这个方法其实很 ...
- Android安卓——实现发短信功能的代码
本处给出的是简单的发短信的笼统代码过程,可根据自己的知识,结合起来进行完善. 在配置文件中给权限配置 <uses-permission android:name="android.pe ...
最新文章
- swift - 根试图控制器的手势返回冲突 - push 新的tabbar控制器手势冲突
- Linux系统安装Appach 2.4.6
- 只有对经过自己努力才得到的东西,我才会高兴。
- 猫影视接口相关及短网址
- c语言指针测试代码,一个关于C语言指针的测试
- java安装错误咋办_win7系统安装Java出现错误的解决方法
- win10安装虚拟机vm遇到的坑
- win10安装jdk
- 知识图谱可视化工具选型
- 愿你与生活交手多年,依然满怀新鲜,
- 基于CCS工程MSP430串口升级(二)
- 1058. 选择题(20)-PAT乙级真题
- NTC热敏电阻基础以及应用和选择(转)
- 高中科幻作文关于计算机,高中科幻作文(精选5篇)
- 基于LSTM网络的视觉识别研究与实现——详细版
- 利用selenium实现淘宝双十一抢购商品
- Altera FPGA基本开发流程
- 电脑端如何访问手机SD卡中的文件
- [cx32] jlink烧录脚本使用
- 茶云导航网站源码v1.2 PHP带后台管理