一、发送短信的方法

  • 使用 Intent 隐式调用系统短信应用进行发送
Uri uri = Uri.parse("smsto:10086");Intent it = new Intent(Intent.ACTION_SENDTO, uri);it.putExtra("sms_body", "Hello World!");startActivity(it);        
  • 使用 SmsManager 发送
  //获取SmsManagerSmsManager sms=SmsManager.getDefault();//如果内容大于70字,则拆分为多条List<String> texts=sms.divideMessage(“需要发送的短信内容!”);//逐条发送短信for(String text:texts) {sms.sendTextMessage(10086, null, text, null, null);}

二、发送短信Demo

1.界面布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><EditTextandroid:id="@+id/ed_phone"android:layout_width="0dp"android:layout_height="wrap_content"android:ems="10"android:inputType="number"android:maxLength="11"android:hint="请输入手机号码"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><EditTextandroid:id="@+id/ed_content"android:layout_width="0dp"android:layout_height="wrap_content"android:hint="请输入需要发送的短信内容"android:inputType="textPersonName"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/ed_phone" /><Buttonandroid:id="@+id/button"android:layout_width="0dp"android:layout_height="wrap_content"android:text="发送短信"android:onClick="onClickSendSMSButton"android:textSize="18sp"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toBottomOf="@+id/ed_content" />
</androidx.constraintlayout.widget.ConstraintLayout>

2.MainActivity 代码如下

package com.daliang.demo_sms;import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;import java.util.List;public class MainActivity extends AppCompatActivity {private static final int SEND_SMS = 100;private EditText edContent;private EditText edPhone;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);edContent=findViewById(R.id.ed_content);edPhone=findViewById(R.id.ed_phone);}//点击了发送短信按钮public void onClickSendSMSButton(View view) {requestPermission();}//请求权限private void requestPermission() {//判断Android版本是否大于23if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {int checkCallPhonePermission = ContextCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE);if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) {ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, SEND_SMS);return;} else {sendSMS();}} else {sendSMS();}}//权限请求回调结果@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case SEND_SMS:if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {sendSMS();} else {Toast.makeText(this, "请求权限被拒绝!", Toast.LENGTH_SHORT).show();}break;default:super.onRequestPermissionsResult(requestCode, permissions, grantResults);}}//发送短信private void sendSMS(){String content=edContent.getText().toString().trim();String phone=edPhone.getText().toString().trim();if (content.isEmpty()||phone.isEmpty()) {Toast.makeText(this, "电话号码或短信内容不能为空!", Toast.LENGTH_LONG).show();return;}//获取SmsManagerSmsManager sms=SmsManager.getDefault();//如果内容大于70字,则拆分为多条List<String> texts=sms.divideMessage(content);//逐条发送短信for(String text:texts) {sms.sendTextMessage(phone, null, text, null, null);}Toast.makeText(this,"发送短信成功!",Toast.LENGTH_LONG).show();}}

3.需要在 AndroidManifesh.xml 中添加发送短信权限

<uses-permission android:name="android.permission.SEND_SMS"/>

Android 发送短信相关推荐

  1. android发送短信

    使用android发送短信,需要先进行添加发送,读取短信新的权限: <uses-permissionandroid:name="android.permission.RECEIVE_S ...

  2. Android发送短信SMS的编程

    手机发送短信SMS是一个非常重要的通信功能,如果使用好短信功能,可以开发出杀手级的应用. 令开发者高兴的是,Android开发中,可以使用模拟器直接进行发送短信的测试.下面简单介绍下在Android发 ...

  3. android发送短信的两种方式,发送长短信的两种方式,群发短信

    android 发送短信的方法 方法一:调用系统的短信APP,发送短信. Intent smsIntent = new Intent(Intent.ACTION_VIEW);smsIntent.set ...

  4. Android发送短信的两种方法

    Android发送短信代码的两种方法 Android发送短信代码的两种方法 有两种方法可以实现发送短信: 其一是使用intent-startActivity,URI数据格式为"smsto:n ...

  5. android编程怎么发送,Android 发送短信程序

    搜索热词 下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. mButton1.setOnClickListener(new Button.O ...

  6. Android发送短信时 短信内容超长处理

    Android发送短信时 短信内容超长处理 一条短信只可容纳70个中文,所以当短信长度超过70个中文字符时程序就要特殊处理了. 通常有两种方式: 一.通过sendTextMessage()方法逐条依次 ...

  7. Android发送短信的源码

    将开发过程中经常用到的一些代码段记录起来,如下资料是关于Android发送短信的的代码. String body="this is mms demo";Intent mmsinte ...

  8. android 发送短信 广播 demo,向Android模拟器打电话发短信的简单方法

    在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这 ...

  9. android 发送短信例子

    只要是手机.都具备打电话.发短信这些基本功能,那么.今天我们首先了解下如何用Android发短信 1.新建工程 2.修改已经生成的main.xml <?xml version="1.0 ...

最新文章

  1. matlab画三维心,matlab动态三维心形(最新整理)
  2. 如果–否则为编码风格最佳实践
  3. android 自定义progressbar demo,Android 自定义进度条ColorfulProgressbar,原理简单、效果还行...
  4. 回车跳到下一个EDIT
  5. 超线程_超线程加持,十代酷睿 i5-10400F 成主流玩家真香新 U
  6. Struts2 简单的上传文件并且显示图片
  7. TIFF文件结构查看器AsTiffTagViewer ver 2.00
  8. 一看就懂【来自英雄联盟盖伦的怒吼】与 Python 详解设计模式(二)观察者模式...
  9. ftp服务器21端口无法连接
  10. xsmax进入dfu模式_iPhone如何进入DFU模式
  11. 【iOS】应用跳转到系统应用
  12. t.zijieimg.com/v.douyin.com短网址在线缩短工具
  13. Android面试 谈谈https原理
  14. 基础知识 | hex文件格式详解
  15. 使用代理服务器导致电脑无法打开网页解决办法
  16. vue项目中导入视频
  17. 赢得时间的30种妙计
  18. iOS 解决苹果手机锁屏后APP退出的问题及app状态
  19. 7月销量被哪吒、零跑反超,“蔚小理”怎么了?
  20. Qt(C++)项目中使用 Basler 工业相机(2 参数设置)

热门文章

  1. 企业微信应用消息html标签,消息类型及数据格式
  2. Java 并发专题 :FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
  3. Linux 操作rar压缩包
  4. python发送各类QQ邮件 —— smtplib与email模块
  5. php guzzle,在PHP中实现使用Guzzle执行POST和GET请求
  6. 一文搞明白SAD DNS(Side channel Attacked DNS)/ CVE-2020-25705
  7. 《一代大商孟洛川》经典台词
  8. AsyncHttpClient 请求
  9. iOS 模仿微信扫描二维码放大功能
  10. 怎么旋转PDF页面方向?可以只旋转一页吗