服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Android拨打电话功能实例详解

Android拨打电话功能实例详解

2021-05-28 15:45马到成功 Android

这篇文章主要介绍了Android拨打电话功能,结合实例形式较为详细的分析了Android实现拨打电话功能的具体步骤与功能代码,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例分析了Android拨打电话功能。分享给大家供大家参考,具体如下:

打电话是手机的一个最基本的功能,现在android智能手机非常流行,里面有多种多样的精彩的手机功能,但是android手机如何实现打电话这个基本功能呢?现以实例说明如下。首先呈上程序:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class A01Activity extends Activity {
 private Button b;
 private EditText et;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    b=(Button)findViewById(R.id.button);
    et=(EditText)findViewById(R.id.et);
    b.setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
  // TODO Auto-generated method stub
    String s=et.getText().toString();
    if(isPhoneNumberValid(s)==true){
     Intent i=new Intent("android.intent.action.CALL",Uri.parse("tel:"+s));
     startActivity(i);
     et.setText("");
    }
    else{
     et.setText("");
     Toast.makeText(A01Activity.this, "您输入的电话号码格式错误,请重新输入!", Toast.LENGTH_LONG).show();
    }
  }
    });
  }
  //方法isPhoneNumberValid(String phoneNumber)用来判断电话号码的格式是否正确
  public static boolean isPhoneNumberValid(String phoneNumber){
   boolean isValid=false;
/**
* 用下面的字符串规定电话格式如下:
* ^\\(? 表示可使用(作为开头
* (\\d{3}) 表示紧接着3个数字
* \\)? 表示可使用)继续
* [- ]? 表示在上述格式后可用具有选择性的“-”继续
* (\\d{4}) 表示紧接着4个数字
* [- ]? 表示可用具有选择性的“-”继续
* (\\d{4})$ 表示以4个数字结束
* 可以和下面的数字格式比较:
* (123)456-78900  123-4567-8900  12345678900 (123)-456-78900*/
   String expression01="^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";
   String expression02="^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$";
   Pattern p01=Pattern.compile(expression01);//通过Pattern对象将电话格式传入
   Matcher m01=p01.matcher(phoneNumber);//检查电话号码的格式是否正确
   Pattern p02=Pattern.compile(expression02);
   Matcher m02=p02.matcher(phoneNumber);
   if(m01.matches()||m02.matches()){
   isValid=true;
   }
   return isValid;
  }
}

res/layout/main.xml如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical" >
  <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"
    />
  <EditText
    android:id="@+id/et"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
</LinearLayout>

AndroidManifest.xml如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.my.a01"
  android:versionCode="1"
  android:versionName="1.0" >
  <uses-sdk android:minSdkVersion="10" />
  <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
      android:name=".A01Activity"
      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>

通过Button来拨打电话,在onClick()方法中,自定义一个Intent,传入ACTION_CALL与Uri.parse(),传入的Uri数据中电话的前缀为“tel:”。

注意要添加拨打电话的权限android.permission.CALL_PHONE

可以使用Android.Action.Dialer方式android.intent.action.DIAL来调用虚拟键盘来拨打电话。

用来检验输入的电话号码格式是否正确还有一个比较简便的方法:在main.xml中的EditText的对象中,添加

?
1
android:phoneNumber="true"

即可限制输入的数据必须为数字符号。

希望本文所述对大家Android程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • AndroidAndroid编程解析XML方法详解(SAX,DOM与PULL)

    Android编程解析XML方法详解(SAX,DOM与PULL)

    这篇文章主要介绍了Android编程解析XML方法,结合实例形式详细分析了Android解析XML文件的常用方法与相关实现技巧,需要的朋友可以参考下...

    liuhe68810052021-05-03
  • AndroidAndroid程序设计之AIDL实例详解

    Android程序设计之AIDL实例详解

    这篇文章主要介绍了Android程序设计的AIDL,以一个完整实例的形式较为详细的讲述了AIDL的原理及实现方法,需要的朋友可以参考下...

    Android开发网4642021-03-09
  • AndroidAndroid实现固定屏幕显示的方法

    Android实现固定屏幕显示的方法

    这篇文章主要介绍了Android实现固定屏幕显示的方法,实例分析了Android屏幕固定显示所涉及的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    鉴客6192021-03-27
  • AndroidAndroid中AsyncTask详细介绍

    Android中AsyncTask详细介绍

    这篇文章主要介绍了Android中AsyncTask详细介绍,AsyncTask是一个很常用的API,尤其异步处理数据并将数据应用到视图的操作场合,需要的朋友可以参考下...

    Android开发网7452021-03-11
  • AndroidAndroid界面效果UI开发资料汇总(附资料包)

    Android界面效果UI开发资料汇总(附资料包)

    android ui界面设计,友好的界面会提高用户体验度;同时也增强了android ui界面设计的难度,本文提供了一些常用开发资料(有下载哦)感兴趣的朋友可以了解下...

    Android开发网4672021-01-03
  • AndroidAndroid实现Service获取当前位置(GPS+基站)的方法

    Android实现Service获取当前位置(GPS+基站)的方法

    这篇文章主要介绍了Android实现Service获取当前位置(GPS+基站)的方法,较为详细的分析了Service基于GPS位置的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    Ruthless8342021-03-31
  • Android汇总Android视频录制中常见问题

    汇总Android视频录制中常见问题

    这篇文章主要汇总了Android视频录制中常见问题,帮助大家更好地解决Android视频录制中常见的问题,需要的朋友可以参考下...

    yh_thu5192021-04-28
  • AndroidAndroid CardView+ViewPager实现ViewPager翻页动画的方法

    Android CardView+ViewPager实现ViewPager翻页动画的方法

    本篇文章主要介绍了Android CardView+ViewPager实现ViewPager翻页动画的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Abby代黎明9602022-03-02