上篇写了用Android发短信的demo,这篇我们来了解下如何用Android拨打电话

直接看代码

修改main.xml

<?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/hello" /> <Button android:id="@+id/button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/button" /> <EditText android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/text" /> </LinearLayout>

修改资源文件strings.xml

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="button">拨打电话</string> <string name="app_name">actionCall</string> <string name="text">13800138000</string> <string name="hello">hello</string> </resources>

添加关键代码

package com.call; import java.util.regex.Matcher; import java.util.regex.Pattern; 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; import android.widget.Toast; public class ActionCall extends Activity { /** Called when the activity is first created. */ private Button button; private EditText text; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (EditText)findViewById(R.id.text); button = (Button)findViewById(R.id.button); button.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View v) { // TODO Auto-generated method stub try { String inputStr = text.getText().toString(); if(isPhoneNumberValid(inputStr) == true){ Intent myIntentDial = new Intent( "Intent.ACTION_CALL",Uri.parse("tel:"+inputStr) ); startActivity(myIntentDial); text.setText(""); }else{ text.setText(""); Toast.makeText(ActionCall.this, "电话格式不对", Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO: handle exception System.out.println(e.getMessage()); } } }); } public static boolean isPhoneNumberValid(String phoneNumber){ boolean isValid = false; String expression = "^//(?(//d{3})//)?[- ]?(//d{3})[- ]?(//d{5})$"; String expression2 = "^//(?(//d{3})//)?[- ]?(//d{4})[- ]?(//d{4})$"; CharSequence inputStr = phoneNumber; Pattern pattern = Pattern.compile(expression); Matcher matcher = pattern.matcher(inputStr); Pattern pattern2 = Pattern.compile(expression2); Matcher matcher2 = pattern2.matcher(inputStr); if(matcher.matches()||matcher2.matches()){ isValid = true; } return isValid; } }

最后,别忘了在AndroidManifest.xml中添加权限

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.call" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".ActionCall" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.CALL_PHONE"> </uses-permission> </manifest>

这样,整个demo就完成了,以下是运行结果

小结

1、如果想要直接拨打电话

Intent intent = new Intent(Intent.ACTION_CALL, uri);

如果想弹出拨号窗口,java代码应改为:

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

最后别忘记添加拨号权限

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

android 打电话例子相关推荐

  1. android通话记录列表apk,android打电话,发短信,获取通讯录、通话记录、短信记录...

    [实例简介] 代码实现android打电话,发短信,获取通讯录.通话记录.短信记录 [实例截图] [核心代码] 19287b5f-b70c-4210-ab04-9d24ddd60788 └── cal ...

  2. android远程打电话,Android打电话功能 Android实战教程第三篇之简单实现拨打电话功能...

    想了解Android实战教程第三篇之简单实现拨打电话功能的相关内容吗,杨道龙在本文为您仔细讲解Android打电话功能的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Android拨打电话 ...

  3. android打电话,接电话,挂电话过程

    android打电话过程: 1.TwelveKeyDialer.java,onKeyDown()->dialButtonPressed() 2.OutgoingCallBroadcaster.j ...

  4. android打电话 接电话 挂电话流程分析

    android打电话过程: 1.TwelveKeyDialer.java,onKeyDown()->dialButtonPressed() 2.OutgoingCallBroadcaster.j ...

  5. Android打电话直接拨号、跳转到拨号面板、跳转到联系人

    说明: Android打电话三种种情况:直接拨号.跳转到拨号面板.跳转到联系人. 代码: 1.直接拨打电话 Intent intentPhone = new Intent(Intent.ACTION_ ...

  6. android Spinner 例子

    为什么80%的码农都做不了架构师?>>>    一.主xml:activity_main.xml <?xml version="1.0" encoding= ...

  7. Android HelloWorld 例子

    Android 开发环境搭建好了就要开发下,验证开发环境是否正常.来个知名的 HelloWorld 例子. 1.创建 android 项目: create android project 然后点击完成 ...

  8. Android打电话功能权限报错,从打电话权限报错看Android6.0权限变化

    引言:去年Android 6.0发布后,其新引入的(Requesting Permissions at Run Time)运行时权限就备受开发者关注,随着今年国内手机厂商对6.0系统的普及,觉得大家有 ...

  9. mac通过android打电话,应用短评:用Mac打电话的意义在哪?

    在日常的操作系统中,往往有一些我们时常不注意,但是在使用之后倍感方便的功能.比如在Mac最新的系统Yosemite中,Facetime与iPhone的无缝沟通就是一个非常好的体验,想试试吗? 首先我们 ...

最新文章

  1. python中的logging日志
  2. Python lambda 关键字
  3. JNDI数据源的连接属性
  4. Synchronize对String加锁
  5. 程序语言(编程语言)汇总大全
  6. linux查看crontab服务执行日志
  7. 企业形象广告的几个突破要点
  8. 【转载】C++读写ini配置文件GetPrivateProfileString()WritePrivateProfileString()
  9. 2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
  10. varnish-cache使用
  11. jquery-选择器
  12. 8086的内中断典型如int 21h的分析
  13. 计算机领域各个技术——汇总篇
  14. 复杂网络社区划分方法综述
  15. 微信小程序中自定义模板
  16. Android11安装谷歌,Android 11正式版
  17. css实现剪切蒙版,魔法般的网页图片修剪!使用Houdini建立CSS剪切蒙版
  18. 大数据开发工程师岗位分析
  19. 快速上手 Android 蓝牙串口 SPP 开发
  20. PT100所谓的二线制,三线制,四线制如何接线(详解)

热门文章

  1. C1-C-小田田浇花
  2. yun安装kubernetes-master-1.5.2-0.7.git269f928.el7.x86_64: [Errno 256] No more mirrors to try
  3. mysql里的as什么意思_SQL数据库中 SELECT AS 中的AS 代表什么意思???
  4. kafka消费者参数详解 java读取不到消费者数据
  5. CSS - 浮动布局(float)
  6. 大话2服务器维护,大话西游2维护公告 听天由命与幻化技能增强
  7. PHP SPL他们留下的宝石
  8. Shader学习笔记:BRDF简单概述
  9. Go语言实现结构型模式之一,代理模式
  10. 混音服务器系统盘,混录天王怎么合成音乐 简单几步轻松混音