总结实现步骤 
  (1)画 mainActivity页面 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" > <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" > <EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入联系人好码" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/et_number"
android:layout_alignParentRight="true"
android:onClick="add"
android:text="+" />
</RelativeLayout> <EditText
android:id="@+id/et_sms_content"
android:layout_width="match_parent"
android:layout_height="250dp"
android:gravity="top"
android:hint="请输入发送短信的内容" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="insert"
android:text="插入短信模板" /> <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="click"
android:text="发送短信" /> </LinearLayout>
(2) 画联系人页面  用一个listview展示就可以了  
(3)写mainActivity的逻辑    主要代码 
public class MainActivity extends Activity {

    private EditText et_number;
private EditText et_sms_content; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//[1]获取我们关心的控件 et_number = (EditText) findViewById(R.id.et_number);
et_sms_content = (EditText) findViewById(R.id.et_sms_content); } //点击按钮 跳转到短信模板页面
public void insert(View v){ Intent intent = new Intent(this,SmsTemplateActivity.class);
//☆☆☆开启Activity有2种方式
//(1)如果想要开启的Activity的界面的数据 用 startActivityForResult();
//(2)如果就是简简单单页面的跳转 就用startActivity()
startActivityForResult(intent, 2); } //点击+ 按钮 跳转到 联系人页面
public void add(View v) {
//[1]创建意图对象
Intent intent = new Intent(this,ContactActivity.class);
//[2]开启Activity
// startActivity(intent);
//[3]小细节 ☆☆☆☆ 如果一个页面开启另外一个页面 并且当开启的这个页面关闭的时候 还要另外一个页面的数据 使用下面这个方法开启Activity
startActivityForResult(intent, 1); } //点击按钮实现发送短信的逻辑
public void click(View v) {
String number = et_number.getText().toString().trim();
String content = et_sms_content.getText().toString().trim(); //[1]获取smsManager的实例
SmsManager smsManager = SmsManager.getDefault();
//[1.1]如果短信内容过过多 发不出去 分条发送
ArrayList<String> divideMessages = smsManager.divideMessage(content);
for (String div : divideMessages) { //[2]发送短信数据
smsManager.sendTextMessage(number, null, div, null, null);
} } //当我们开启的Activity的页面关闭的时候这个方法会调用
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { //代表我要请求 ContactActivity的数据
String phone = data.getStringExtra("name");
et_number.setText(phone);
}else if (requestCode == 2) {
//代表我要请求SmsTemplateActivity 的数据
String smscontent = data.getStringExtra("smscontent");
et_sms_content.setText(smscontent); } /*if (resultCode == 10) {
//说明数据是由 ContactActivity返回 String phone = data.getStringExtra("name");
et_number.setText(phone); }else if (resultCode == 20) {
//说明数据是由SmsTemplateActivity返回
String smscontent = data.getStringExtra("smscontent");
et_sms_content.setText(smscontent); }
*/ super.onActivityResult(requestCode, resultCode, data);
} }
(4)写短信模板页面  也是用一个listview展示即可  
(5)短信模板页面主要代码 如下 
public class SmsTemplateActivity extends Activity {

    String objects[] = {"我在开会,请稍后联系","我在吃饭,请稍后联系","我在打代码,请稍后联系","我在开车,请稍后联系","我在约会,请稍后联系"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_template); //[1]找到lv控件
ListView lv = (ListView) findViewById(R.id.lv);
//[2]创建数据适配器
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.item, objects);
//[3]把数据展示到listview上
lv.setAdapter(adapter);
//[4]给lv设置点击事件
lv.setOnItemClickListener(new OnItemClickListener() { @Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) { //[5]获取我们点中条目的数据
String smscontent = objects[position];
//[6]把这个数据返回给调用者
Intent intent = new Intent();
intent.putExtra("smscontent", smscontent);
//[7]通过这个方法把数据返回给调用者
setResult(20, intent);
//[8]要记得调用finish
finish(); }
}); }
}

(6)实现发送短信的功能

//[1]获取smsManager的实例
SmsManager smsManager = SmsManager.getDefault();
//[1.1]如果短信内容过过多 发不出去 分条发送
ArrayList<String> divideMessages = smsManager.divideMessage(content);
for (String div : divideMessages) { //[2]发送短信数据
smsManager.sendTextMessage(number, null, div, null, null);
}

(7)记得要加上发送短信的权限

android.permission.SEND_SMS

短信发送器小案例 smsManager的更多相关文章

  1. 初识安卓小程序(Android短信发送器)

    首先,先创建一个安卓项目(我的版本号是4.4.2的),名字为"短信发送器" 然后在res目录下找到layout目录,找到activity_main.xml或fragment_mai ...

  2. Android实战--短信发送器

    首先设计界面 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...

  3. 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)

    1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...

  4. Android_简易的短信发送器

    这个随笔将介绍如何完成一个简单的第三方的短信发送器(不打开短信界面,调用android的api完成功能) 1.首先,我们来做布局 由于我这里写的是一个简易的,,短信发送,所以只是一个LinearLay ...

  5. android开发学习---开发一个简易的短信发送器

    一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...

  6. Android短信发送器_08

    1.string xml代码 <?xml version="1.0" encoding="utf-8"?> <resources> &l ...

  7. Android短信发送器(2)

    在上一篇的<Android短信发送器>当中.发送功能并不完好.当发送内容超过限定字数时,短信就会发送失败,此时就须要推断内容是否超过限制,假设不超过限制.就直接发送,反之.则对其进行处理再 ...

  8. Android项目——短信发送器

    因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限: <?xml version="1.0" encoding=" ...

  9. Android(java)学习笔记86:案例短信发送器

    1.一般我们第一步都是先创建这个main.xml布局文件,这是良好的习惯: <?xml version="1.0" encoding="utf-8"?&g ...

随机推荐

  1. Java中对象的内存分配机制

    一.内存划分 Java把内存划分为两种,一种是栈内存,另一种是堆内存. 1.栈内存 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配.当在一段代码块定义一个变量时,Java就在栈 ...

  2. docker学习:docker命令

    帮助命令 自验证 docker version 详情信息 docker info 获取帮助 docker --help 镜像命令 列出本例主机上的镜像 docker images [OPTIONS] ...

  3. docker学习:dockefile解析

    是什么 DockerFile 是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 构建三部曲 编写Dockerfile文件 docker build docker run 文件什么样 ...

  4. SpringBoot 与 SpringCloud 的版本对应详细信息

    "spring-cloud": { "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M ...

  5. 关于 this.$route.meta.operations.includes('delete') 取不到值的问题

    原因是:src/mock/api/sys.login.js中定义的路径 要与src/router/modules/下定义的路由要一致 作用this.$route.matched可以查看匹配信息 来自为 ...

  6. Calendar日期往后一天,一月等

    import java.util.Date ;       Date date=new   Date();//取时间 System.out.println(date.toString());     ...

  7. 【Python自动化Excel】pandas处理Excel数据的基本流程

    这里所说的pandas并不是大熊猫,而是Python的第三方库.这个库能干嘛呢?它在Python数据分析领域可是无人不知.无人不晓的.可以说是Python世界中的Excel. pandas库处理数据相 ...

  8. 在变压器厂中使用 ISA-95 应用程序进行调度集成

    介绍 在工业批量和连续生产/运营环境中,调度涉及将诸如罐.反应器和其他加工设备之类的资源分配给生产/运营任务.第 4 层生产/运营计划确定要制造什么产品.要制造多少产品以及何时制造.根据设备.物料.人 ...

  9. 使用Python 爬取 京东 ,淘宝。 商品详情页的数据。(避开了反爬虫机制)

    以下是爬取京东商品详情的Python3代码,以excel存放链接的方式批量爬取.excel如下 代码如下 from selenium import webdriver from lxml import ...

  10. Android官方文档翻译 十一 2.4Overlaying the Action Bar

    Overlaying the Action Bar 叠加菜单栏 This lesson teaches you to 这节课教给你: Enable Overlay Mode 启用叠加模式 For An ...