android 拨打电话 号码判断

      AndroidManifest中添加打电话权限 

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

public class boda extends Activity
{
 /*声明Button与EditText对象名称*/
  private Button mButton1;
  private EditText mEditText1; 

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    /*通过findViewById构造器来构造EditText与Button对象*/
    mEditText1 = (EditText) findViewById(R.id.myEditText1);
    mButton1 = (Button) findViewById(R.id.myButton1);
    /*设置Button对象的OnClickListener来聆听OnClick事件*/
    mButton1.setOnClickListener(new Button.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        try
        {
          /*取得EditText中用户输入的字符串*/
          String strInput = mEditText1.getText().toString();
          if (isPhoneNumberValid(strInput)==true)
          {
            /*建构一个新的Intent
            运行action.CALL的常数与通过Uri将字符串带入*/
            Intent myIntentDial = new
            Intent
            (
              "android.intent.action.CALL",
              Uri.parse("tel:"+strInput)
            );
            /*在startActivity()方法中
            带入自定义的Intent对象以运行拨打电话的工作 */
            startActivity(myIntentDial);
            mEditText1.setText("");
          }
          else
          {
            mEditText1.setText("");
            Toast.makeText(
            boda.this, "输入的电话格式不符",
            Toast.LENGTH_LONG).show();
          }
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
    });
  }
  /*检查字符串是否为电话号码的方法,并返回true or false的判断值*/
  public static boolean isPhoneNumberValid(String phoneNumber)
  {
    boolean isValid = false;
    /* 可接受的电话格式有:
     * ^\\(? : 可以使用 "(" 作为开头
     * (\\d{3}): 紧接着三个数字
     * \\)? : 可以使用")"接续
     * [- ]? : 在上述格式后可以使用具选择性的 "-".
     * (\\d{4}) : 再紧接着三个数字
     * [- ]? : 可以使用具选择性的 "-" 接续.
     * (\\d{4})$: 以四个数字结束.
     * 可以比较下列数字格式:
     * (123)456-78900, 123-4560-7890, 12345678900, (123)-4560-7890
    */
    String expression = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$";
    String expression2 ="^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";
    CharSequence inputStr = phoneNumber;
    /*创建Pattern*/
    Pattern pattern = Pattern.compile(expression);
    /*将Pattern 以参数传入Matcher作Regular expression*/
    Matcher matcher = pattern.matcher(inputStr);
    /*创建Pattern2*/
    Pattern pattern2 =Pattern.compile(expression2);
    /*将Pattern2 以参数传入Matcher2作Regular expression*/
    Matcher matcher2= pattern2.matcher(inputStr);
    if(matcher.matches()||matcher2.matches())
    {
      isValid = true;
    }
    return isValid;
  }
}

跳转到拨打电话界面

  myImageButton = (ImageButton) findViewById(R.id.myImageButton);

    myImageButton.setOnClickListener(new ImageButton.OnClickListener()
    {

      @Override
      public void onClick(View v)
      {
        /* 调用拨号的画面 */
        Intent myIntentDial = new Intent("android.intent.action.CALL_BUTTON");

        startActivity(myIntentDial);

      }

    });
时间: 2024-08-31 09:32:45

android 拨打电话 号码判断的相关文章

编写android拨打电话apk应用实例代码_java

android 实现拨打电话的app,代码非常简单,功能也很实用,分享给大家. MainActivity.java package com.bblei.caller; import android.R.string; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.SystemClock;

Android拨打电话功能实例详解

本文实例分析了Android拨打电话功能.分享给大家供大家参考,具体如下: 打电话是手机的一个最基本的功能,现在android智能手机非常流行,里面有多种多样的精彩的手机功能,但是android手机如何实现打电话这个基本功能呢?现以实例说明如下.首先呈上程序: import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.content.Int

Android 实现手机拨打电话的功能_Android

一部手机最常用的功能就是打电话和发短信了,在Android开发中我们如何通过程序拨打电话呢?本文就给出一个用Android手机拨打电话的简单的实例.        下面是开发此实例的具体步骤:        一.新建一个Android工程,命名为phoneCallDemo.        二.设计程序的界面,打开main.xml把内容修改如下: XML/HTML代码 <?xml version="1.0" encoding="utf-8"?> <L

Android无需申请权限拨打电话的两种方式_Android

Android打电话有两种实现方法: 第一种方法,拨打电话跳转到拨号界面.源代码如下: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data = Uri.parse("tel:" + "135xxxxxxxx"); intent.setData(data); startActivity(intent); 第二种方法,拨打电话直接进行拨打,但是有些第三方rom(例如:MIUI),不会直接进行拨打,而是要用户进

如何在拨号界面通过拨打指定号码来启动某个秘密界面

方案说明: 1.通过注册广播接收者监听用户拨打电话操作: 2.当用户拨打电话时,广播接收者接收到号码,并与指定的"暗号"对比,若匹配,则启动某个界面并且终止用户拨打电话操作. 实现: 1.在清单文件中配置广播接收者,并添加权限: <receiver android:name="cn.edu.chd.mobilesafe.receiver.CallPhoneReceiver" > <intent-filter android:priority=&qu

app-Android,隐藏号码拨打电话软件是如何做到的?

问题描述 Android,隐藏号码拨打电话软件是如何做到的? 老大要在app中需要这个这个功能,大体上我该怎么做,一点头绪都没有 解决方案 一般通过ip电话中转实现,因为ip电话没有号码,所以无法显示,达到隐藏的效果. 解决方案二: 在Android中,有两种方法拨打电话 Intent surf = new Intent(Intent.ACTION_DIAL, call); Intent surf = new Intent(Intent.ACTION_CALL, call); 第一种方法调用手机

Android实战教程第三篇之简单实现拨打电话功能_Android

本文实例为大家分享了Android打电话功能的实现代码,需要一个文本输入框输入号码,需要一个按钮打电话. 本质:点击按钮,调用系统打电话功能. xml布局文件代码:: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m

Android调用系统自带功能( 照相,浏览照片,打开浏览器,拨打电话)

MainActivity如下: package cn.com.bravesoft.testintent; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import androi

Android无需申请权限拨打电话的两种方式

Android打电话有两种实现方法: 第一种方法,拨打电话跳转到拨号界面.源代码如下: Intent intent = new Intent(Intent.ACTION_DIAL); Uri data = Uri.parse("tel:" + "135xxxxxxxx"); intent.setData(data); startActivity(intent); 第二种方法,拨打电话直接进行拨打,但是有些第三方rom(例如:MIUI),不会直接进行拨打,而是要用户进