android开发怎么拨打电话

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android开发怎么拨打电话相关的知识,希望对你有一定的参考价值。

无权限版(弹出拨号界面并自动输入电话号码,用户选择是否拨号):

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
public void Call(String Num,Context c)
if(Num !=null && Num.length() >0)
Intent itt=new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+Num));
itt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
c.startActivity(itt);

权限版(弹出拨号界面,自动输入电话号码并立刻拨号,在部分系统中会触发安全警告):

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

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
    public void Call(String Num,Context c)
        if(Num !=null && Num.length() >0)
            Intent itt=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+Num));
            itt.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            c.startActivity(itt);
        
    

参考技术A 步骤一::新建一个Android工程,命名为Callph.
步骤二:设计程序的界面,打开activity_main.xml把内容修改如下:
<linearlayout xmlns:android="schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Textview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/call_text">
</textview>
<Edittext
android:id="@+id/et1"
android:inputtype="phone"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Edittext>
<button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/call_phone">
</button>
</linearlayout>
步骤三:增加拨打电话的权限,打开AndroidManifest.xml,修改代码如下:
<manifest xmlns:android="schemas.android.com/apk/res/android" package="com.lauking.callph" android:versioncode="1" android:versionname="1.0">
<uses-sdk android:minsdkversion="8" android:targetsdkversion="15"> </uses-sdk> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
<activity android:name="com.lauking.callph.MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"> </action>
<category android:name="android.intent.category.LAUNCHER"> </category>
</intent-filter>
</activity>
</application>
</manifest>
步骤四:添加拨出电话的权限
<uses-permission android:name="android.permission.CALL_PHONE">
</uses-permission>
步骤五:主程序MainActivity.java代码如下:
package com.lauking.callph;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity
private Button bt;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 取得资源
bt = (Button) findViewById(R.id.bt1);
et = (EditText) findViewById(R.id.et1);
// 增加事件响应
bt.setOnClickListener(new Button.OnClickListener()
@Override
public void onClick(View v)
// 取得输入的电话号码串
String inputStr = et.getText().toString();
// 如果输入不为空创建打电话的Intent
if (inputStr.trim().length() != 0)
Intent phoneIntent = new Intent(
"android.intent.action.CALL", Uri.parse("tel:"
+ inputStr));
// 启动
startActivity(phoneIntent);

// 否则Toast提示一下
else
Toast.makeText(MainActivity.this, "不能输入为空",
Toast.LENGTH_LONG).show();


);

本回答被提问者采纳

Android拨打电话

参考技术A Intent.ACTION_DIAL是Intent指定的打开拨号界面的action,不需要声明权限,data中必须指定对应协议,否则会报错,拨号的协议为tel,后面可拼接电话号码或置空

Intent.ACTION_CALL是Intent指定的直接拨号的action,必须声明权限,否则程序将崩溃

CALL_PHONE是拨打电话功能必须声明的权限,因为涉及用户手机的资费问题,属于Android的一项危险权限。在Android6.0以及更高版本上,在使用危险权限时都必须进行运行时权限处理。所以,首先使用ContextCompat.checkSelfPermission()检测是否已经授权,checkSelfPermission()方法接收两个参数,第一个参数为上下文Context,第二个参数为具体的权限名,返回值和PackageManager.PERMISSION_GRANTED做比较,相等则表示已授权。如果不相等,使用ActivityCompat.requestPermissions()方法来向用户申请授权,requestPermissions()方法接收三个参数,第一个参数为Activity的实例,第二个为String数组,把需要申请的权限名放入数组即可,第三个为请求码,只需要保证其唯一性即可。

调用完requestPermissions()方法后,无论是否同意,都会回调到onRequestPermissionsResult()方法中,授权结果封装在grantResults参数中,requestCode表示唯一的请求码

以上是关于android开发怎么拨打电话的主要内容,如果未能解决你的问题,请参考以下文章

<a href="tel:010-57121655">拨打电话</a>怎么样才能在Android手机上面 触发拨打电话。IOS是ok的,急求!

Android拨打电话

无法使用网络访问受限的 Agora API 拨打电话(Android 平台)

Android开发,如何编程实现开启电话的免提功能?

在应用程序处于信息亭模式时拨打电话

Android中类似QQ和微信中聊天消息中包含有电话号码,点击可以选择拨打的功能怎么实现?