通过一个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"/>
综上所述就完成了打电话的时候防止出现不是电话号码的情况以便于提醒用户
相关推荐
当我们想要从应用中拨打电话时,就需要用到Intent ACTION_CALL这个知识点。接下来,我们将深入探讨如何在Android中使用Intent ACTION_CALL来实现拨打电话的功能。 首先,理解Intent ACTION_CALL的含义是关键。...
- **Action**:"android.intent.action.CALL" - **示例**:用户可以从应用内部拨打指定电话号码,如紧急呼叫或客户服务热线。 10. **CALL_FORWARDING_STATE_CHANGED_ACTION** - **描述**:此Broadcast Action...
在Android应用开发中,ACTION_CALL动作是用于启动系统拨打电话功能的关键元素。此示例将深入探讨如何利用ACTION_CALL在应用程序中实现拨打电话的功能。首先,我们了解ACTION_CALL的背景和概念。 ACTION_CALL是...
<uses-permission android:name="android.intent.action.CALL" /> <uses-feature android:name="android.hardware.telephony" android:required="true" /> ``` 需要注意的是,自Android 6.0(API级别23)起,系统...
<uses-permission android:name="android.intent.action.CALL" /> ``` 运行时权限请求通常通过`ActivityCompat.checkSelfPermission()`和`ActivityCompat.requestPermissions()`方法进行。 2. **Intent机制**: ...
自动拨号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.intent.action.CALL" Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile)); startActivity(intent);//内部会添加android.intent.category.DEFAULT
`CALL`操作(拨打电话)则需要调用同样的`startActivity`方法,但ACTION应为`android.intent.action.CALL`,并且数据应包含电话号码。这会启动电话应用并拨打指定的号码。 在实际应用中,确保处理用户权限是至关...
对应的Action字符串为`android.intent.action.CALL_FORWARDING_STATE_CHANGED`。 #### CLEAR_CREDENTIALS_ACTION (清除认证信息) 此广播事件用于清除保存的认证信息。对应的Action字符串为`android.intent.action....
9. android.intent.action.CALL:进行呼叫的动作。 这些动作与权限一同构成了Android应用安全模型的基础,使得应用开发者可以在授权的前提下,合理地利用系统资源,保证应用功能的实现和系统的安全性。了解这些权限...
intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); ``` 或者,我们也可以使用 Uri 来跳转到拨号界面: ```java Uri uri = Uri.parse("tel:xxxxxx"); Intent intent = new Intent...
- 若要直接拨打电话,可以使用`ACTION_CALL_BUTTON`动作: ```java Intent intent = new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent); ``` - 若只是打开拨号...
<uses-permission android:name="android.intent.action.CALL" /> ``` 2. **Intent对象的使用** 在Android中,Intent是用来启动活动(Activity)或服务(Service)的桥梁。在拨号场景下,我们需要创建一个Intent...
例如,Intent.ACTION_CALL用于发起电话呼叫,Intent.ACTION_SEND用于发送文本或文件等。 #### 二、安装与卸载应用 1. **安装应用**: - 代码示例: ```java String filePath = "mnt/sdcard/abc.apk"; Intent ...
<action android:name="android.intent.action.CALL"/> <category android:name="android.intent.category.DEFAULT"/> <!-- 第二个Activity --> <action android:name="android.intent.action.CALL"/...
intent.Call("setAction", "android.intent.action.CALL"); intent.Call("setData", new AndroidJavaClass("android.net.Uri").CallStatic("parse", "tel:" + phoneNumber)); AndroidJavaClass unityPlayer = ...
5. ACTION_CALL: 拨打电话,需要`android.permission.CALL_PHONE`权限。 6. ACTION_SEND: 分享内容,可以用来分享文本、图片、视频等。 7. ACTION_BROWSABLE: 表示可以被浏览器启动,通常用于Web链接。 8. ACTION...
- 使用`ACTION_CALL_BUTTON`行动,可以启动拨号界面,让用户直接进行拨号操作。例如: ```java Intent intent = new Intent(); intent.setAction("android.intent.action.CALL_BUTTON"); startActivity(intent)...