android 之手机拨号器,以及短信发送器的简单实现
android手机拨号器,以及短信发送器的简单实现
其中本例中的手机拨号器并不是我们自己完全去实现,而是通过intent让android系统自带的拨号器去实现拨号的功能,
一、电话拨号器
第一步:对资源文件夹values中的string.xml文件进行配置,(在应用程序中需用到的字符串资源如button按钮上的名字、TextView中的内容都在此定义,然后再布局文件中可以进行使用)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, PhoneActivity!</string>
<string name="app_name">电话拨号器</string>
<string name="textview_name">请输入电话号码</string>
<string name="button_name">拨号</string>
</resources>
第二步:对资源中布局文件夹下的main.xml文件进行配置,该文件控制Activity的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/textview_name"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/edittext_id"
/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_name"
android:id="@+id/button_id"
/>
</LinearLayout>
第三步:实现包含业务逻辑的具体的Activity
package com.heima.phone;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class PhoneActivity extends Activity {
EditText editText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText = (EditText) this.findViewById(R.id.edittext_id);
Button button = (Button) this.findViewById(R.id.button_id);
button.setOnClickListener(new PhoneListener());
}
private final class PhoneListener implements View.OnClickListener{
/*
*<action android:name="android.intent.action.CALL" />
*<category android:name="android.intent.category.DEFAULT" />
*<data android:scheme="tel" />
*/
@Override
public void onClick(View v) {
String telephone = editText.getText().toString();
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.setData(Uri.parse("tel:"+telephone));
startActivity(intent);// 隐式注册android.intent.category.DEFAULT,因此无需显示调用intent.setAction("android.intent.action.CALL");
}
}
}
二、短信发送器
第一步:配置资源文件string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, SMSActivity!</string>
<string name="app_name">短信发送器</string>
<string name="telephone_number">请输入手机号码</string>
<string name="sms_content">请输入短信内容</string>
<string name="buttonname">发送短信</string>
<string name="show">发送成功</string>
</resources>
第二步:配置布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/telephone_number"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/phone_id"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sms_content"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:id="@+id/sms_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_id"
/>
</LinearLayout>
第三步:实现Activity
package com.heima.sms;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SMSActivity extends Activity {
EditText phone;
EditText sms;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
phone = (EditText) this.findViewById(R.id.phone_id);
sms = (EditText) this.findViewById(R.id.sms_id);
Button button = (Button) this.findViewById(R.id.button_id);
button.setOnClickListener(new SMSListener());
}
private final class SMSListener implements View.OnClickListener{
@Override
public void onClick(View v) {
String phoneNumber = phone.getText().toString();
String smscontent = sms.getText().toString();
//得到短信管理器
SmsManager manager = SmsManager.getDefault();
//divideMessage方法用于分割内容过长的短信
ArrayList<String> contents = manager.divideMessage(smscontent);
for(String content:contents){
/* 各个参数的含义
* destinationAddress 短信接收者号码、
* scAddress 短信转发中心号码,一般为默认为null即可
* text 短信内容sentIntent 不太清楚,暂时设为null
* deliveryIntent 不太清楚,暂时设为null
*/
manager.sendTextMessage(phoneNumber, null, content, null, null);
}
//不要忘记写show方法,否则没有信息发送状态提示,Toast.LENGTH_LONG标示显示时间稍长
Toast.makeText(getApplicationContext(), R.string.show, Toast.LENGTH_LONG).show();
}
}
}
特别注意在短信发送器的例子中一定要注意在AndroidManifest.xml文件中配置属性,
<uses-permission android:name="android.permission.SEND_SMS"/>
否则老是报程序异常终止异常
android 之手机拨号器,以及短信发送器的简单实现相关推荐
- Android实现电话拨号器和短信发送器
电话拨号器 实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了. 步骤: 1 ...
- Android两个小Demo之电话拨号器和短信发送器
两个简单的小案列 <1>电话拨号器 实现一个电话拨号器,我们分为简单的三步走: 1.在layout中写好布局 2.在MainActivity中写出对应的事件 3.在Manifest中配置好 ...
- Android模拟手机拨号器
一直以来对手机之间的通话都很好奇,拨打号码就能实现两个手机连同,今天就可以实现这个小功能,不然还怎么说自己是研究Android的手机的呢? Android的手机模拟器自带有拨号功能,我们先试试自带的拨 ...
- 收到银行短信你正在使用Android设备,手机收到扣费短信,无故被扣钱?小心自动订阅的大坑!...
原标题:手机收到扣费短信,无故被扣钱?小心自动订阅的大坑! 近日,全国数家音视频网站被约谈,要求整改取消默认自动续费条约等. 现在的付费方式越来越多,也越来越方便,而后衍生的自动订阅付费更是让人防不胜 ...
- java 添加手机联系人_Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结...
本文实例讲述了Android编程实现读取手机联系人.拨号.发送短信及长按菜单操作方法.分享给大家供大家参考,具体如下: 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下 ...
- java 获取手机联系人_Android 读取手机联系人、拨号、发送短信及长按菜单的操作...
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- android 4.0版本手机接受多条短信分析
手机接受多条短信分析 1. 空闲中整理下笔记,先上android 4.0 短信接收多条异常问题处理,再写 android 4.5 的. 实例:android4.0版本以及以前版本 [信息]对比机发送 ...
- 【h5移动端页面调起手机sms批量发送短信,兼容ios和android】
移动端h5页面调起手机发送短信功能,实现批量发送生日祝福模板,苹果和安卓的兼容写法不一样. 先判断是ios还是android,拼接的写法不一样 android是sms:188XXXXXXXX,134X ...
- android手机拨号器实现
总共分为4个部分:string值,Layout布局设计,MainActivity代码编写,给项目添加使用授权. 1. string值 Phone-->res-->values-->s ...
- 手机网站实现一键拨号及html5短信发送功能JS代码(微信适用)
手机网站实现一键拨号及html5短信发送功能JS代码(微信适用) 来源:本站原创 作者:温州中网网络营销机构 发布时间:2014-1-10 10:45:44 点击数:3069 微信微 ...
最新文章
- 2020年中国智慧城市发展值得关注的技术
- php普通索引和唯一索引,MySQL中普通索引和唯一索引的区别详解
- [转] 深入浅出 妙用Javascript中apply、call、bind
- 开始折腾iphone cdma 恢复,降级,刷机,越狱,手编,写号
- spring boot aop 记录方法执行时间
- C++:38---final关键字和禁止类继承
- 路由复用器--gorilla/mux
- python在数据分析的应用_Python运用于数据分析的简单教程
- webservers ajax,jQuery AJax调用asp.net webservers的实现代码
- java floormod_Java中 % 与Math.floorMod() 区别详解
- 面试必掌握的redis的问题
- ASP.NET MVC Flash 在线拍照
- kubernetes部署分布式存储longhorn
- 三年半 Java 后端鹅厂面试经历
- python读取csv文件路径设置_python读取csv文件
- Overture教程之五线谱介绍
- 抖音粉丝快速增长的有效方法 抖音怎么增加1000粉丝
- ASR自动语音识别技术
- 服务器更新操作系统补丁,windows 10通过第三方landesk补丁服务器对系统进行了更新操作...
- java 两集合根据某字段 过滤掉相同的数据 , 集合整合数据
热门文章
- 关于node中的板块问题
- JS规则 自加一,自减一 ( ++和- -) 【mynum = mynum + 1;//等同于mynum++;】
- osx mount nfs/smb
- ASP.NET MVC 分部视图
- 在 Mac OS X 下启用超级帐户(root)
- Eclipse注释快捷键、如何生成API以及可能遇到的问题解决
- Linux操作系统 和 Windows操作系统 的区别
- Centos7 网络报错Job for iptables.service failed because the control process exited with error code....
- Android 程序中获取一个反向 Shell
- 多语言样式容器内容超出父级宽度不换行显示