短信发送器小案例 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 ...
随机推荐
- mongodb Windows系统下安装卡死问题
1.操作环境 MongoBD版本:mongodb-win32-x86_64-2008plus-ssl-4.0.5-signed (4.0.5) 操作系统:Windows 2008 R2_64位 (服务 ...
- 编写Java程序,使用 dom4j 解析上一节王者荣耀“英雄”对应的Xml文件数据内容,打印输出,具体格式
查看本章节 查看作业目录 需求说明: 使用 dom4j 解析上一节王者荣耀"英雄"对应的Xml文件数据内容,打印输出,具体格式如图所示 实现思路: 创建ParseHeroXML用于 ...
- lua中的三目运算符
开头先说结论 1.简单版三目运算符(需要自我保证"b"不为"false") a and b or c 2.通用版三目运算符 (a and {b} or {c}) ...
- CSS3 动画3D视角下 旋转圆环
首先是 transform 属性: transform 属性向元素应用 2D 或 3D 转换.该属性允许我们对元素进行旋转.缩放.移动或倾斜. 加上对应属性则可得到3D透视效果下的形态 本次以圆形( ...
- LATEX图片位置
常用选项[htbp]是浮动格式: -『h』当前位置.将图形放置在正文文本中给出该图形环境的地方.如果本页所剩的页面不够,这一参数将不起作用. -『t』顶部.将图形放置在页面的顶部. -『b』底部.将图 ...
- C# 类的继承问题 正方形周长面积计算问题
1. 设计编写一个控制台应用程序,练习类的继承. (1) 编写一个抽象类 People,具有"姓名","年龄"字段,"姓名"属性,Work ...
- 热词cloud-EChart安装
1.安装npm install echarts npm install echarts-wordcloud注意版本:echarts版本5只能和wordcloud版本2的一起使用 :echarts版本4 ...
- CesiumJS下载量超过1百万次
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ CesiumJS的下载总量已经超过100万.这一里程碑对我们(C ...
- 2022GDUT寒训专题一J题
题目 题面 给你一个长度为 n的整数序列{A1,A2,⋯,A**n},要求从中找出一段连续的长度不超过 m的非空子序列,使得这个序列的和最大. 输入格式 第一行为两个整数 n,m: 第二行为 n个用空 ...
- 树形dp空间优化(dfn)
树形dp空间优化 介绍 有时题目会告诉我们n叉树的最大层数,或者给出一个完全n叉树树,直接做树形dp会爆空间时,就可以用这个优化方法. 多数树形dp都是先dfs到子树,再合并到根上,显然当合并到根上时 ...