作者:程序员小冰,GitHub主页:https://github.com/QQ986945193

新浪微博:http://weibo.com/mcxiaobing

首先先给大家看一下最终实现的效果:

其实这个案例的demo实在是太简单了。不过此功能也是非常强大,用处挺多的,

就像所谓的蚂蚁虽小,五脏俱全。我们可以用它集成在我们的app中。

拨打客服电话之类的。所以下面看代码吗,首先我们写好布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <EditText
android:id="@+id/et_phone_num"
android:layout_width="match_parent"
android:layout_height="60dp"
android:hint="请输入手机号码" /> <Button
android:id="@+id/btn_call_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击拨打电话" />
</LinearLayout>

然后java代码中实现拨打电话的功能

`package davidappcheckupdate.qq986945193.com.callphonedavidapp;

import android.Manifest;

import android.content.Intent;

import android.content.pm.PackageManager;

import android.net.Uri;

import android.support.v4.app.ActivityCompat;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

/**

* @author :程序员小冰

* @新浪微博 :http://weibo.com/mcxiaobing

* @GitHub:https://github.com/QQ986945193

* @CSDN博客: http://blog.csdn.net/qq_21376985

* @交流Qq :986945193

*/

public class MainActivity extends AppCompatActivity {

private EditText etPhone;
private Button btnPhone; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etPhone = (EditText) findViewById(R.id.et_phone_num);
btnPhone = (Button) findViewById(R.id.btn_call_phone); btnPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (etPhone.getText().toString().trim() == null || etPhone.getText().toString().trim().equals("")) {
Toast.makeText(MainActivity.this, "对不起,电话不能为空", Toast.LENGTH_SHORT).show();
return;
} else if (etPhone.getText().toString().trim() != null && !(etPhone.getText().toString().trim().equals(""))) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"
+ etPhone.getText().toString().trim()));
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {
return;
}
startActivity(intent); }
}
});
}

}

`

最后重要的一点就是,添加拨打电话的权限在AndroidManifest.xml:

 <uses-permission android:name="android.permission.CALL_PHONE" />

好了,教程到此结束。想要源代码的请看下面下载链接:

(AndroidStudio版)github下载地址:

https://github.com/QQ986945193/CallPhoneDavidApp

(AndroidStudio版)git开源中国下载地址:

http://git.oschina.net/MCXIAOBING/CallPhoneDavidApp

(AndroidStudio版)CSDN免积分下载地址:

http://download.csdn.net/detail/qq_21376985/9623854

【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现的更多相关文章

  1. Android嵌入式开发初学者的几个注意点

    一:首先你必须了解ARM平台 Android 移植与驱动核心开发,当然也可以是X86和其他的平台,不过其他平台的Android智能终端开发并不是很多. Android嵌入式智能操作系统是基于Linux ...

  2. 玩转Android Camera开发(二):使用TextureView和SurfaceTexture预览Camera 基础拍照demo

    Google自Android4.0出了TextureView,为什么推出呢?就是为了弥补Surfaceview的不足,另外一方面也是为了平衡GlSurfaceView,当然这是本人揣度的.关于Text ...

  3. 【转】玩转Android Camera开发(三):国内首发---使用GLSurfaceView预览Camera 基础拍照demo

    http://blog.csdn.net/yanzi1225627/article/details/33339965 GLSurfaceView是OpenGL中的一个类,也是可以预览Camera的,而 ...

  4. 玩转Android Camera开发(三):国内首发---使用GLSurfaceView预览Camera 基础拍照demo

    GLSurfaceView是OpenGL中的一个类,也是能够预览Camera的,并且在预览Camera上有其独到之处. 独到之处在哪?当使用Surfaceview无能为力.痛不欲生时就仅仅有使用GLS ...

  5. Android开发---基本UI组件1:自动拨电话,自动上网,输入框不换行、只输数字、只输文本、只输密码

    1.activity_main.xml 描述:构建一个按钮 <?xml version="1.0" encoding="utf-8"?> <L ...

  6. XE5开发Android程序调用电话相关功能(短信息和电话)

    方法a.不使用Intent而是直接发短信. smsManager对应的Delphi代码应该是: uses Androidapi.JNI.JavaTypes,Androidapi.JNI.Telepho ...

  7. XE5开发Android程序调用电话相关功能(短信息和电话) [转]

    其实都可以通过intent和URI调用系统功能.Windows程序员可以理解成是ShellExecute.这个是万金油.可以有调用各种功能.后面会介绍. 1.短信息.很简单 方法a.不使用Intent ...

  8. Android 学习第11课,android 实现拨打电话的功能

    1. 先布局界面,界面采用线性垂直方式来布局 在layout 界面文件中 activity_main.xml 中 <LinearLayout xmlns:android="http:/ ...

  9. Android软件开发需要学什么

    首先,需要学习哪些Android开发技术? Android的开发技术很多,在开始学习的时候不可能一次性全部学会,也没有必要一开始都全部学会,但是有些技术是非常常用的,需要在开始时打好基础,这些技术时: ...

随机推荐

  1. MySQL的undo/redo日志和binlog日志,以及2PC

    发现自己的知识点有点散,今天就把它们连接起来,好好总结一下. 一.undo log.redo log.binlog的定义和对比   定义和作用                       所在架构层级 ...

  2. day2. 六大基本数据类型简介

    一.基本数据类型 Number 数字类型 (int float bool complex) str 字符串类型 list 列表类型 tuple 元组类型 set 集合类型 dict 字典类型 二.Nu ...

  3. 笨办法学习python3练习代码:argv参数变量与文件操作

    ex15.py 完成ex15.py需要在ex15.py同文件夹目录下面准备一个txt文件(ex15_sample.txt) 执行ex15.py 如: python     ex15.py      e ...

  4. .NETCore中实现ObjectId反解

    前言 在设计数据库的时候,我们通常需要给业务数据表分配主键,很多时候,为了省事,我都是直接使用 GUID/UUID 的方式,但是在 MonggoDB 中,其内部实现了 ObjectId(以下统称为Oi ...

  5. TestFlight无法访问怎么办?TF如何链接AppStoreConnect解决教程

    最近苹果商店半天下架近3万款应用的新闻闹的沸沸扬扬,很多被下架应用的运营商转将APP上架了TestFlight内测商店(TF签名上架),但是从7月31日起很多用户就开始反映TestFlight内测应用 ...

  6. 004_自己尝试go语言中的方法

    go语言可以给任意类型定义方法,我在学习过程中,一开始一头雾水,但是随着理解的深入,现在也大概知道了什么叫做方法 之前的一些例子其实讲的并不是特别生动,下面我用一个生动的例子演示一下 首先提出需求.我 ...

  7. java基础之字符串

    以下内容摘自<java编程思想>第十三章. 1. 不可变 String String 对象是不可变对象,String 类中每一个看起来会修改 String 值的方法,实际上都是创建了一个全 ...

  8. MySQL数据库的约束

    一 默认值约束 约束语句 default  ‘默认值’ 在建立表的时候在想要加默认约束的字段名,数据类型后面加default ‘默认值’ 例如 : create table emp( uid  int ...

  9. C++运用栈实现网络浏览器的“前进”与“后退”功能

    在用户最近访问的网页中进行“前进”和“后退”是Web浏览器的常用功能,实现该功能的一种方式是使用两个栈(backward 栈和forward栈)来存储用户访问的网址,用户的不同操作对应的具体实现方法如 ...

  10. C#LeetCode刷题之#231-2的幂(Power of Two)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3858 访问. 给定一个整数,编写一个函数来判断它是否是 2 的幂 ...