短信发送器小案例 smsManager
<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>
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);
}
}
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的更多相关文章
- 初识安卓小程序(Android短信发送器)
首先,先创建一个安卓项目(我的版本号是4.4.2的),名字为"短信发送器" 然后在res目录下找到layout目录,找到activity_main.xml或fragment_mai ...
- Android实战--短信发送器
首先设计界面 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:t ...
- 无废话Android之常见adb指令、电话拨号器、点击事件的4种写法、短信发送器、Android 中各种布局(1)
1.Android是什么 手机设备的软件栈,包括一个完整的操作系统.中间件.关键的应用程序,底层是linux内核,安全管理.内存管理.进程管理.电源管理.硬件驱动 2.Dalvik VM 和 JVM ...
- Android_简易的短信发送器
这个随笔将介绍如何完成一个简单的第三方的短信发送器(不打开短信界面,调用android的api完成功能) 1.首先,我们来做布局 由于我这里写的是一个简易的,,短信发送,所以只是一个LinearLay ...
- android开发学习---开发一个简易的短信发送器
一.需求: 开发一个简易的短信发送器,输入:对方手机号码,短信内容,点击发送按钮,短信发送成功,对方手机成功收到短信. 其中要求短信内容过长时可以自动拆分,长度英文是160个英文,中文是70个,中英混 ...
- Android短信发送器_08
1.string xml代码 <?xml version="1.0" encoding="utf-8"?> <resources> &l ...
- Android短信发送器(2)
在上一篇的<Android短信发送器>当中.发送功能并不完好.当发送内容超过限定字数时,短信就会发送失败,此时就须要推断内容是否超过限制,假设不超过限制.就直接发送,反之.则对其进行处理再 ...
- Android项目——短信发送器
因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限: <?xml version="1.0" encoding=" ...
- Android(java)学习笔记86:案例短信发送器
1.一般我们第一步都是先创建这个main.xml布局文件,这是良好的习惯: <?xml version="1.0" encoding="utf-8"?&g ...
随机推荐
- Elasticsearch(二)--集群原理及优化
一.ES原理 1.索引结构ES是面向文档的 各种文本内容以文档的形式存储到ES中,文档可以是一封邮件.一条日志,或者一个网页的内容.一般使用 JSON 作为文档的序列化格式,文档可以有很多字段,在创建 ...
- 云南农职《JavaScript交互式网页设计》 综合机试试卷①——实现购物车的结算
一.语言和环境 实现语言:javascript.html.css. 开发环境:HBuilder. 二.题目2(100分) 1.功能需求: 马上过节了,电商网站要进行促销活动,需要实现该商城购物车的商品 ...
- JQuery的安装与下载教程
网页中添加 jQuery 可以通过多种方法在网页中添加 jQuery. 您可以使用以下方法: 从 jquery.com 下载 jQuery 库 从 CDN 中载入 jQuery, 如从 Google ...
- 新环境chart包helmlint校验
在iot目录内可以执行helm lint iot-api 去校验
- 【VUE】VUE使用常见问题搜集
文章目录 1.日期格式化 2.引用JSON文件中的数据 1.日期格式化 安装插件,官网:Moment.js npm install moment --save 示例: //Sat Mar 14 202 ...
- C#中ref关键字的用法总结
ref表示引用的意思,C#中它有多种用法,这里简单总结一下: 1.按引用传递参数 具体可见:C#中的值传递与引用传递(in.out.ref) 2.引用局部变量 引用局部变量指的是在变量声明时使用ref ...
- Docker基本命令入门
本文介绍Docker基本的操作命令,包括对镜像容器的获取,查看,保存,启停等操作. 1. 检查docker的版本: docker version docker -v 2. 搜索名字叫做tutorial ...
- Kylin安装Version1.6.0
Kylin安装,基于版本1.6.0,Kylin只有单机没有集群, 使用apache-kylin-1.6.0-hbase1.x-bin.tar.gz安装包. 1.安装规划 角色规划 IP/机器名 安装软 ...
- CSS基础 CSS的三大特性以及选择器优先级计算方法
1.子元素默认会继承父元素的样式,但不是所有的元素都有继承 常见的继承父元素特点的元素有: 1.color 2.font-sytle.font-weight.font-size.font-family ...
- Ubuntu18.04升级内核后修改grub文件启动顺序
采坑:之前线上的服务器内核是4.15.0,后面有的服务跑不起来,说是要升级内核,于是就升级了,然后改了/etc/default/grub的启动顺序,改错了就启动不起来了,哈哈.后面多次尝试还是改成功了 ...