Android开发实现拨打电话与发送信息的方法分析
作者:xxiaowen 发布时间:2023-06-19 07:09:13
标签:Android,拨打电话,发送信息
本文实例讲述了Android开发实现拨打电话与发送信息的方法。分享给大家供大家参考,具体如下:
xml布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="电话号码" />
<EditText
android:id="@+id/edit_main_number"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入电话号码"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="短信内容"/>
<EditText
android:id="@+id/edit_main_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入短信内容"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/btn_call"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"/>
<Button
android:id="@+id/btn_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="发送信息"/>
</LinearLayout>
</LinearLayout>
java代码:
package com.wenzhi.interndemo;
import java.net.URL;
import android.net.Uri;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.app.Activity;
import android.content.Intent;
/**
* 拨打电话与发送信息
* @author xiaowen
* @2016-1-5 下午10:48:53
*/
public class ThreeActivity extends Activity implements OnLongClickListener {
private EditText edit_main_number;
private EditText edit_main_content;
private Button btn_call;
private Button btn_send;
private OnClickListener listener=new OnClickListener() {
@Override
public void onClick(View v) {
if(v==btn_call){
//点击拨打电话 创建一个Intent(隐式)
//String action=Intent.ACTION_DIAL;
//Intent intent=new Intent(action);
Intent intent=new Intent(Intent.ACTION_DIAL);
//携带数据
String number=edit_main_number.getText().toString();
intent.setData(Uri.parse("tel:"+number));
//启动Activity
startActivity(intent);
}else if(v==btn_send){
//点击发送信息 创建一个Intent(隐式)
Intent intent=new Intent(Intent.ACTION_SENDTO);
//携带数据
String number=edit_main_number.getText().toString();
String content=edit_main_content.getText().toString();
intent.setData(Uri.parse("smsto:"+number));
intent.putExtra("sms_body", content);
startActivity(intent);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
edit_main_number=(EditText) findViewById(R.id.edit_main_number);
edit_main_content=(EditText) findViewById(R.id.edit_main_content);
btn_call=(Button) findViewById(R.id.btn_call);
btn_send=(Button) findViewById(R.id.btn_send);
//给视图对象设置点击监听
btn_call.setOnClickListener(listener);
btn_send.setOnClickListener(listener);
//给视图对象设置长按监听
btn_call.setOnLongClickListener(this);
btn_send.setOnLongClickListener(this);
}
@Override
public boolean onLongClick(View v) {
if(v==btn_call){
//长按拨打电话 创建一个Intent(隐式),必须在AndroidManifest.xml加入权限配置
Intent intent=new Intent(Intent.ACTION_CALL);
//携带数据
String number =edit_main_number.getText().toString();
intent.setData(Uri.parse("tel:"+number));
//启动Activity
startActivity(intent);
}else if(v==btn_send){
//得到SmsManager的对象
SmsManager smsManager=SmsManager.getDefault();
//发送文本信息(短信)
String number=edit_main_number.getText().toString();
String content=edit_main_content.getText().toString();
smsManager.sendTextMessage(number, null, content, null, null);
}
return true;
}
}
注意:在AndroidManifest.xml加入权限配置
<uses-permission android:name="android.permission.CALL_PHONE"/><!-- 打电话的权限 -->
<uses-permission android:name="android.permission.SEND_SMS"/><!-- 发短信的权限 -->
另,关于Android权限设置可参考Android Manifest功能与权限描述大全
希望本文所述对大家Android程序设计有所帮助。
来源:http://blog.csdn.net/wenzhilanyu2012/article/details/50466029


猜你喜欢
- 1.例题题目描述迷宫由 n 行 m 列的单元格组成,每个单元格要么是空地,要么是障碍物。其中1表示空地,可以走通,2表示障碍物。给定起点坐标
- 这篇文章主要介绍了Java接口统一样式返回模板简介,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- java 二叉查找树实例代码1.左边<中间<右边2.前序遍历 左中右3.中序遍历 中左右4.后序遍历 左右中public cla
- Java接口(interface)的概念及使用在抽象类中,可以包含一个或多个抽象方法;但在接口(interface)中,所有的方法必须都是抽
- 表示 Windows 注册表中的项级节点。 此类是注册表封装。继承层次结构System.Object &nb
- 前言最近一直被无尽的业务需求淹没,没时间喘息,终于接到一个能让我突破代码舒适区的活儿,解决它的过程非常曲折,一度让我怀疑人生,不过收获也很大
- 1.鼠标右击我的电脑–》属性–》高级系统设置2.把下面的变量名称和电脑文件的本地路径填进去即可(注意:变量值后面后面不要带分号)jdk环境变
- 一、概述现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射
- 在进行需求开发的时候,我们总是避不开和用户的数据打交道,那提到获取用户的数据一定会想到的东西就是申请权限<uses-permissio
- 本文参考文档Add Flutter to existing apps。首先有一个可以运行的原生项目第一步:新建Flutter moduleT
- 从源代码树下载下来的最新Android源代码,是不包括内核代码的,也就是Android源代码工程默认不包含Linux Kernel代码,而是
- 今天学习到sql中的ResultSet,用到了获取总函数,网上百度说是使用getRow()方法,但是一值返回0.后台调试才发现getRow(
- 今天在使用Nlog的时候,发现了一个之前没注意的问题。以前,我的app配置文件都是这么写的,当然配置比较多的时候会改用xml。 如
- Java集合删除元素ArrayList实例详解AbstractCollection集合类中有一个remove方法,该方法为了适配多种不同的集
- volatile变量volatile是Java的关键词,我们可以用它来修饰变量或者方法。为什么要使用volatilevolatile的典型用
- 前言我曾经在一篇介绍 Compose Navigation 的文章 中提到了 Navigation 的状态保存实际是由 rememberSa
- 目录微服务微服务架构SpringCould简介环境搭建1. 创建数据库2. 新建一个子模块api3. 新建一个子模块provider作为服务
- Android:控件GridView的使用如果是列表(单列多行形式)的使用ListView,如果是多行多列网状形式的优先使用GridView
- 1、队列的基本概念队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进
- 原因:给定的流不支持mark和reset就会报这个错误。获取到一个网络流,这个网络流不允许读写头来回移动,也就不允许mark/reset机制