`

ACTION.CALL

 
阅读更多

      通过一个Button来实现打电话  为了避免用户输入非电话号码的字符串,再拨打电话之前通过自定义isPhoneNumberVaild()以及Toast信息来提示用户

   定义一个Activity

 

package cn.mw.com.phone;

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 EX01_02Activity extends Activity {
	EditText ed_phone;
	Button call_phone;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		ed_phone = (EditText) findViewById(R.id.phone_call);
		call_phone = (Button) findViewById(R.id.call_btn);
		call_phone.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String strInput = ed_phone.getText().toString();
				try {
					if (isPhoneNumberValid(strInput) == true) {

						// 穿件一个新的Intent 运行ACTION.CALL的常数与通过uri将字符串带入

						Intent myIntentDial = new Intent(
								"android.intent.action.CALL", Uri.parse("tel:"
										+ strInput));
						//在StartActivity()方法里面带入自定义的Intent对象以运行拨打电话的工作
						startActivity(myIntentDial);
						ed_phone.setText("");
						
					}else{
						ed_phone.setText("");
						Toast.makeText(getApplicationContext(), "输入的电话号码格式不符", Toast.LENGTH_LONG).show();
					}
				} catch (Exception e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
	}

	protected 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;
		//创建Patten
		Pattern pattern=Pattern.compile(expression);
		//将Patten以参数传入Matcher作 Regular  expression
		Matcher matcher=pattern.matcher(inputStr);
		//创建Patten2
		Pattern pattern2=Pattern.compile(expression2);
		//将Patten2以参数传入Matcher作 Regular  expression
		Matcher matcher2=pattern.matcher(inputStr);
		if(matcher.matches()||matcher2.matches()){
			isValid=true;
		}
		// TODO Auto-generated method stub
		return isValid;
	}
}

 定义一个XML

<?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" >
<EditText 
    android:id="@+id/phone_call"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="请输入电话号码"
    />
<Button 
    
    android:id="@+id/call_btn"
    android:layout_width="140dip"
    android:layout_height="wrap_content"
    android:text="拨打电话"
    />
</LinearLayout> 
 

 

然后再在EX01_02mainfest.xml里边添加

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

 

综上所述就完成了打电话的时候防止出现不是电话号码的情况以便于提醒用户

分享到:
评论

相关推荐

    android Action call 拨打电话 Intent.ACTION.CALL

    当我们想要从应用中拨打电话时,就需要用到Intent ACTION_CALL这个知识点。接下来,我们将深入探讨如何在Android中使用Intent ACTION_CALL来实现拨打电话的功能。 首先,理解Intent ACTION_CALL的含义是关键。...

    Intent.action_大全

    - **Action**:"android.intent.action.CALL" - **示例**:用户可以从应用内部拨打指定电话号码,如紧急呼叫或客户服务热线。 10. **CALL_FORWARDING_STATE_CHANGED_ACTION** - **描述**:此Broadcast Action...

    这个示例通过ACTION_CALL 动作拨打电话

    在Android应用开发中,ACTION_CALL动作是用于启动系统拨打电话功能的关键元素。此示例将深入探讨如何利用ACTION_CALL在应用程序中实现拨打电话的功能。首先,我们了解ACTION_CALL的背景和概念。 ACTION_CALL是...

    Android调用打电话(Call Phone)

    &lt;uses-permission android:name="android.intent.action.CALL" /&gt; &lt;uses-feature android:name="android.hardware.telephony" android:required="true" /&gt; ``` 需要注意的是,自Android 6.0(API级别23)起,系统...

    打电话源码.zip

    &lt;uses-permission android:name="android.intent.action.CALL" /&gt; ``` 运行时权限请求通常通过`ActivityCompat.checkSelfPermission()`和`ActivityCompat.requestPermissions()`方法进行。 2. **Intent机制**: ...

    AutoPhoneCall-master.zip

    自动拨号APP,感兴趣的... call = os.popen('adb shell am start -a android.intent.action.CALL -d tel:{}'.format(number)) sleep(20) #挂断电话 Hangup = os.popen('adb shell input keyevent 26') sleep(5)

    android实现打电话功能

    解压就可运行。... //"android.intent.action.CALL" Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile)); startActivity(intent);//内部会添加android.intent.category.DEFAULT

    Cordova 3.x 实用插件(4) -- Android的SEND、VIEW、CALL(WebIntent)

    `CALL`操作(拨打电话)则需要调用同样的`startActivity`方法,但ACTION应为`android.intent.action.CALL`,并且数据应包含电话号码。这会启动电话应用并拨打指定的号码。 在实际应用中,确保处理用户权限是至关...

    安卓广播事件大全

    对应的Action字符串为`android.intent.action.CALL_FORWARDING_STATE_CHANGED`。 #### CLEAR_CREDENTIALS_ACTION (清除认证信息) 此广播事件用于清除保存的认证信息。对应的Action字符串为`android.intent.action....

    Android之permission权限列表[收集].pdf

    9. android.intent.action.CALL:进行呼叫的动作。 这些动作与权限一同构成了Android应用安全模型的基础,使得应用开发者可以在授权的前提下,合理地利用系统资源,保证应用功能的实现和系统的安全性。了解这些权限...

    Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面.

    intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); ``` 或者,我们也可以使用 Uri 来跳转到拨号界面: ```java Uri uri = Uri.parse("tel:xxxxxx"); Intent intent = new Intent...

    Android中使用Intent启动手机系统功能的方法介绍.pdf

    - 若要直接拨打电话,可以使用`ACTION_CALL_BUTTON`动作: ```java Intent intent = new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); ``` - 若只是打开拨号...

    安卓拨号的实例代码

    &lt;uses-permission android:name="android.intent.action.CALL" /&gt; ``` 2. **Intent对象的使用** 在Android中,Intent是用来启动活动(Activity)或服务(Service)的桥梁。在拨号场景下,我们需要创建一个Intent...

    Android system action

    例如,Intent.ACTION_CALL用于发起电话呼叫,Intent.ACTION_SEND用于发送文本或文件等。 #### 二、安装与卸载应用 1. **安装应用**: - 代码示例: ```java String filePath = "mnt/sdcard/abc.apk"; Intent ...

    安卓-Activity-广播接收者的使用

    &lt;action android:name="android.intent.action.CALL"/&gt; &lt;category android:name="android.intent.category.DEFAULT"/&gt; &lt;!-- 第二个Activity --&gt; &lt;action android:name="android.intent.action.CALL"/...

    U3d直接调用打电话接口,安卓和ios通用。

    intent.Call("setAction", "android.intent.action.CALL"); intent.Call("setData", new AndroidJavaClass("android.net.Uri").CallStatic("parse", "tel:" + phoneNumber)); AndroidJavaClass unityPlayer = ...

    Android-Intent-Action.zip_action _android

    5. ACTION_CALL: 拨打电话,需要`android.permission.CALL_PHONE`权限。 6. ACTION_SEND: 分享内容,可以用来分享文本、图片、视频等。 7. ACTION_BROWSABLE: 表示可以被浏览器启动,通常用于Web链接。 8. ACTION...

    android的intent跳转

    - 使用`ACTION_CALL_BUTTON`行动,可以启动拨号界面,让用户直接进行拨号操作。例如: ```java Intent intent = new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent)...

Global site tag (gtag.js) - Google Analytics