使用Android拨打电话功能

1、要使用Android系统中的电话拨号功能,首先必须在AndroidManifest.xml功能清单中加入允许拨打电话的权限:

<uses-permission android:name="android.permission.CALL_PHONE" /> // 允许拨打电话权限

2、进行拨打电话的代码:

a、调用Android系统的拨号界面,但不发起呼叫,用户按下拨号键才会进行呼叫

 1 @Override
 2    public void onCreate(Bundle savedInstanceState) {
 3        super.onCreate(savedInstanceState);
 4        setContentView(R.layout.main);
 5
 6        Button callBut = (Button)findViewById(R.id.callBut);
 7
 8        callBut.setOnClickListener(new View.OnClickListener() {
 9
10         @Override
11         public void onClick(View v) {
12             Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel://13800138000"));
13             startActivity(intent);
14         }
15     });
16 }  

b、直接拨号发起呼叫

 1 @Override
 2    public void onCreate(Bundle savedInstanceState) {
 3        super.onCreate(savedInstanceState);
 4        setContentView(R.layout.main);
 5
 6        Button callBut = (Button)findViewById(R.id.callBut);
 7
 8        callBut.setOnClickListener(new View.OnClickListener() {
 9
10         @Override
11         public void onClick(View v) {
12             Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel://13800138000"));
13             startActivity(intent);
14         }
15     });
16 }  

注:其中Uri.parse("tel://13800138000")中的格式写成Uri.parse("tel:13800138000"),测试中也通过的。

3、拨号相关的知识点——Linkify的使用以及android:autoLink属性的使用,自动判断字符串是电话,网址或者邮件地址:

a、使用代码设置:

import android.text.util.Linkify;

           

             Linkify.addLinks(textView, Linkify.WEB_URLS|Linkify.EMAIL_ADDRESSES|Linkify.PHONE_NUMBERS);

b、在配置中设置:android:autoLink="web|phone|email"

<TextView
                     android:id="@+id/tv1"
                     android:layout_width="fill_parent"
                     android:layout_height="wrap_content"

                     android:autoLink="web|phone|email"
                    />

4、为你的电话拨号程序添加拨号键意图过滤器配置:

<activity android:name=".CallPhoneActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

<intent-filter> // 当用户按下拨号键时,Android系统会弹出选择菜单让用户选择使用那个拨号器
                <action android:name="android.intent.action.CALL_BUTTON" />   
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter> 
        </activity>

<intent-filter> // 功能跟上一个过滤器一样
                <action android:name="android.intent.action.CALL_PRIVILEGED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="tel" />
            </intent-filter>

注:需要加上<category android:name="android.intent.category.BROWSABLE" />才能使调用的activity收到getIntent().getAction();

时间: 2024-08-17 11:47:45

使用Android拨打电话功能的相关文章

程序员也需要下点成本啊!!IOS input渲染 和android不同,以及自动添加拨打电话功能导致的问题

前几天公众号做完了给领导审查,因为这个公众号是在之前的1.0基础上开发的,所以没有在意兼容性问题[其实是忽略了IOS=.=原谅我的无知] 结果出问题了,有几个问题: 1. input渲染效果和andriod下不同 2. 长串数字会被渲染成电话号码 3.四位小数被渲染成超链接 1.input Android下设置没有圆角.无渐变,文字居中显示,完全没问题啊 到了IOS就变成这个鸟样子了!!这是什么鬼啊?? 原来iPhone上的safari解析input[type="submit"]和in

html5 跳到拨打电话功能

在做一个微信的微网站中的一个便民服务电话功能的应用,用到移动web页面中列出的电话号码,点击需要实现调用通讯录,网页一键拨号的拨打电话功能. 如果需要在移动浏览器中实现拨打电话,发送email,美国服务器,调用sns等功能,移动手机WEB页面(HTML5)Javascript提供的接口是一个好办法. 采用url链接的方式,实现在Safari ios,香港服务器,Android 浏览器,webos 浏览器,塞班浏览器,IE,Operamini等主流浏览器,进行拨打电话功能. 1.最常用WEB页面J

Android拨打电话不弹出系统拨号界面总结

我在网上搜了一下,解决这个问题,有两种方式: 1.反射调用系统底层方法,并获取系统权限 反射调用的代码如下: Class phoneFactoryClass = Class.forName("com.android.internal.telephony.PhoneFactory"); Method makeDefaultPhones=phoneFactoryClass.getMethod("makeDefaultPhones",Context.class); mak

Android拨打电话 &nbsp; 安卓拨打电话权限

<!--添加可以向外拨打电话的权限  -->       <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>            // 检查是否获得了权限(Android6.0运行时权限)                 if (ContextCompat.checkSelfPermission(MainActivity.this,    

H5调用Android拨打电话

1.AndroidAndJSInterface.java class AndroidAndJSInterface { /** * 该方法将被js调用,用于加载数据 */ @JavascriptInterface public void showcontacts() { // 下面的代码建议在子线程中调用 String json = "[{\"name\":\"阿福\", \"phone\":\"18600012345\&quo

jquery mobile实现拨打电话功能的几种方法

3.使用wtai协议进行拨打电话. 在wml中可以调用设备的wtai函数来呼叫特定的电话号码.目前,越来越多的浏览器都支持这个功能,但还不是所有. 代码如下所示: 复制代码 代码如下: <input name="phone_no" format="*m" value="13"/> <do type="option" label="呼出号"> <go href="wta

iOS开发中拨打电话功能的实现

//第一种 方法 // 弊端:该方法进行拨号之后,当电话挂断之后不会返回应用程式,会停留在通话记录界面 NSURL *url = [NSURL URLWithString:@”tel//185------”]; [UIApplication shareApplication] openURL:url]; // 第二种 方法(Apple私有API) 审核会有问题 //大拨打电话之后会提升用户是否拨打,当电话挂断之后会返回应用程式 NSURL *url = [NSURL URLWithString:

ios app跳转拨打电话界面,调用拨打电话功能

DNLogFUNC //两种方法都可以用 //这种据说是可以上appstore NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@",PhoneNumber]]; if ( !_phoneCallWebView ) { _phoneCallWebView = [[UIWebView alloc] initWithFrame:CGRectZero]; } [_phoneCallWebView

android 拨打电话小功能

1.其实就是对Intent 的ACTION进行参数设置. 在manifest中药设置打电话的权限: 1 <uses-permission android:name="android.permission.CALL_PHONE" /> xml: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://sc