短信发送器小案例 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 ...
随机推荐
- 编写Java程序,使用JDBC连接SQL Server数据库
返回本章节 返回作业目录 需求说明: 使用JDBC连接SQL Server数据库 SQL Server数据库位于192.168.2.101. 所需连接的数据库为eshop_db,用户名为test,密码 ...
- 通过Rancher Desktop在桌面上运行K8s
Rancher 发行的操作系统新选择:Rancher Desktop for Windows,它可以帮助你在Windows桌面上管理Kubernetes和容器.当然他当然会支持Linux,Mac的. ...
- 使用.NET 6开发TodoList应用(16)——实现查询排序
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 关于查询的另一个需求是要根据前端请求的排序字段进行对结果相应的排序. 目标 实现根据排序要求返回排序后的结果 原理与思路 要实 ...
- Pytest_用例分组(6)
用例分组 pytest进行分组测试的方法是使用装饰器 @pytest.mark.标记名称,被标记为相同名称的用例可以看做为同一个组. 分组用例的运行方式是在执行命令中追加 -m "标记名称& ...
- win11系统设置笔记本合盖上不休眠
第一步.打开控制面板 第二步.打开控制面板 第三步.打开电源选项 第四步.如下图操作即可
- Linux上天之路系列目录
Linux上天之路系列目录 Linux上天之路(一)之Linux前世今生 Linux上天之路(二)之Linux安装 Linux上天之路(三)之Linux系统目录 Linux上天之路(四)之Linux界 ...
- 使用Eclipse新建项目
如果图片损坏,点击查看: https://www.toutiao.com/i6496078011538866702/ 出现"新建"对话框,输入mavem 点击创建"简单M ...
- POJ3090Visible Lattice Points
http://poj.org/problem?id=3090 对于此题,观测点的数目,从小规模开始观察,可以得到每一个点,由一根无限长的绳子,绕着原点旋转,得到的第一个点.换另外一个思路,每一个观察到 ...
- 关于jar包和war读取静态文件
在war包中static中的静态文件,打成jar包后却读取不到,这是为什么呢,让我门看下两种读取的区别 一.war包中都取静态模板文件 public static void download(Stri ...
- Android官方文档翻译 十四 3.2Supporting Different Screens
Supporting Different Screens 支持不同的屏幕 This lesson teaches you to 这节课教给你 Create Different Layouts 创建不同 ...