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

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

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

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

 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); Button callBut = (Button)findViewById(R.id.callBut); callBut.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel://13800138000"));
startActivity(intent);
}
});
}

b、直接拨号发起呼叫

 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); Button callBut = (Button)findViewById(R.id.callBut); callBut.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel://13800138000"));
startActivity(intent);
}
});
}

注:其中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();

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

  1. android拨打电话

    1.要使用Android系统中的电话拨号功能,首先必须在AndroidManifest.xml功能清单中加入允许拨打电话的权限: <uses-permission android:name=&q ...

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

    我在网上搜了一下,解决这个问题,有两种方式: 1.反射调用系统底层方法,并获取系统权限 反射调用的代码如下: Class phoneFactoryClass = Class.forName(" ...

  3. android 调用电话功能

    今天用到了打电话的功能,这要如何实现呢? 很简单 1.创建对应对的xml展示页面喝java文件 2.在manifest中添加权限 下面上代码吧: 这是布局的一部分 <LinearLayout a ...

  4. H5调用Android拨打电话

    1.AndroidAndJSInterface.java class AndroidAndJSInterface { /** * 该方法将被js调用,用于加载数据 */ @JavascriptInte ...

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

    3.使用wtai协议进行拨打电话. 在wml中可以调用设备的wtai函数来呼叫特定的电话号码.目前,越来越多的浏览器都支持这个功能,但还不是所有. 代码如下所示: 复制代码 代码如下: <inp ...

  6. Android拨打电话权限总结

    android在6.0和6.0以上拨打电话的权限声明 /** * 打电话 * * @param phoneNumber */ protected void startCallPhone(String ...

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

    DNLogFUNC //两种方法都可以用 //这种据说是可以上appstore NSURL *phoneURL = [NSURL URLWithString:[NSString stringWithF ...

  8. android 拨打电话小功能

    1.其实就是对Intent 的ACTION进行参数设置. 在manifest中药设置打电话的权限: <uses-permission android:name="android.per ...

  9. 获取手机通讯录放入PinnedSectionListView中,按名字首字母排序,并且实现拨打电话功能。

    package com.lixu.tongxunlu; import java.util.ArrayList; import com.lixu.tongxunlu.PinnedSectionListV ...

随机推荐

  1. Unterminated &lt;c:forEach tag

    c:forEach tag意思是这一块有语法错误

  2. MIRUO面试题

    1.c#可以继承string类吗?2.接口可以实现接口吗?抽象类可以实现接口吗?抽象类可以实现实体类吗?3.用C#计算2.5的3次方的方法.4.什么是协同程序?5.GC是什么,如何减少内存,如何加快性 ...

  3. unity 对象旋转,自转

    1.对象具体的围绕哪个轴旋转,对应的设置值: transform.Rotate(new Vector3(1,0,0));  //绕x轴旋转    //默认是物体围绕世界坐标的XYZ轴旋转,即物体绕着世 ...

  4. SimpleDateFormat 格式化参数说明

    字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W ...

  5. 菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表ngx_chain_t

    菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog. ...

  6. C#-MaximumSIze,MinimumSize,窗口默认大小范围---ShinePans

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. android: 接收系统广播

    Android 内置了很多系统级别的广播,我们可以在应用程序中通过监听这些广播来得到 各种系统的状态信息.比如手机开机完成后会发出一条广播,电池的电量发生变化会发出一 条广播,时间或时区发生改变也会发 ...

  8. Selenium2+python自动化73-定位的坑:class属性有空格

    前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn ...

  9. [Android Pro] 关于Android 7.0无法进行https抓包的问题

    cp from  : https://www.cnblogs.com/wytings/p/6954293.html 在App进行数据请求的时候,如果每次都打印log去判断是一件很不“人性化”的操作行为 ...

  10. CUDA_ERROR_OUT_OF_MEMORY

    E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 198.83M (208486400 bytes) ...