android 打电话的例子

本文通过实例详细介绍了如何在Android应用中实现拨打电话功能,包括布局文件设置、AndroidManifest.xml配置及Activity代码编写等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前android手机铺天盖地向我们袭来,国内android开发的爱好者与日俱增,之所以这么的人选择android开发,恐怕android所提供的强大的API是一个重要原因吧!今天笔者就拿一个打电话的例子来说。

基本创建项目的流程在此省略,项目名为:Android3G1_01手机间的通话功能实现,包名为:com.shanyan,android模拟器版本1.6。

1、第一步:布局文件设置代码如下:


<?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" >	
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="电话拨号器" />
   <EditText 
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:id="@+id/edt"   />
   <Button 
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:id="@+id/bt"
       android:text="拨打此号码"/>
</LinearLayout>


PS:优秀的工程师师不会把汉字直接写死在程序中的,要在res/strings.xml文件中体现出来。本文为了说明问题,就简单点实现,但效果不会受到影响!

es New Roman"'>是一个重要原因吧!今天笔者就拿一个打电话的例子来说。

基本创建项目的流程在此省略,项目名为:Android3G1_01手机间的通话功能实现,包名为:com.shanyan,android模拟器版本1.6。


2、第二步:AndroidManifest添加代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.shanyan"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk android:minSdkVersion="4" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".Android3G1_01Activity"
            android:label="@string/app_name" >
            <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" >
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.CALL_PHONE"/>

</manifest>


注意:不要忘记该文件中的

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


3、AndroidAndroid3G1_01Activity文件的代码如下:

nyan,android模拟器版本1.6。

1、第一步:布局文件设置代码如下:


package com.shanyan;

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;

public class Android3G1_01Activity extends Activity {
    /** Called when the activity is first created. */
    private Button bt=null;
    private EditText tv=null;
    //private String action="android.intent.action.CALL";
    //private String type="tel";
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        bt=(Button) findViewById(R.id.bt);
        tv=(EditText) findViewById(R.id.edt);
        bt.setOnClickListener(new OnClickListener() {
			
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String mobileNum=tv.getText().toString();
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+mobileNum));
				startActivity(intent);
			}
		}); 
    }
}


4、程序运行过程:

首先要开启两个虚拟机,如果你的机器只设置一个的话,可以在window->AVD Manager创建一个新的AVD,笔者的版本号是2.3.3。

接下来运行程序,先启动1.6版本模拟器,然后再启动2.3.3版本的,(2.3.3的启动可以通过window->AVD Manager,然后选中2.3.3版本条目,再点击右边的starts the slectedAVD按钮,即可启动),界面如下:







  我们从两截图中的左上角就可以看到,5554是1.6版本AVD的电话号码,5556就是2.3.3版本AVD的电话号码,在1.6版本的AVD中输入相关信息,就可以实现电话拨号的功能,截图如下:

font-family:Consolas;mso-hansi-font-family:Consolas;color:black'>版本模拟器,然后再启动2.3.3版本的,(2.3.3的启动可以通过window->AVD Manager,然后选中2.3.3版本条目,再点击右边的starts the slectedAVD按钮,即可启动),界面如下:








 如果2.3.3版本的AVD接通电话,即可实现通话功能,截图如下:

    当然,模拟器是不能进行通话的,如果有android手机的同学,可以讲程序放到手机上运行,此时就可以输入真实的手机号码,语言通话功能就可以实现。(Believe it or not!)

S>AVD中输入相关信息,就可以实现电话拨号的功能,截图如下:font-family:Consolas;mso-hansi-font-family:Consolas;color:black'>版本模拟器,然后再启动2.3.3版本的,(2.3.3的启动可以通过window->AVD Manager,然后选中2.3.3版本条目,再点击右边的starts the slectedAVD按钮,即可启动),界面如下:






### Android 实现自动拨打电话和发送短信功能 #### 权限声明 为了使应用程序能够在Android设备上执行拨打特定电话号码的操作以及发送短信,必须在`AndroidManifest.xml`文件中声明相应的权限。对于拨打电话而言,需要声明如下权限: ```xml <uses-permission android:name="android.permission.CALL_PHONE" /> ``` 而对于发送短信,则需声明以下权限[^1]: ```xml <!-- 发送短信属于危险权限 --> <uses-permission android:name="android.permission.SEND_SMS"/> ``` 值得注意的是,由于这些权限被分类为“危险”级别,在运行时还需要向用户请求授权。 #### 动态获取权限 自Android 6.0 (API level 23)起,应用不仅要在清单文件里申明所需权限,还应在必要时刻通过编程方式询问用户的许可。以下是用于检查并请求CALL_PHONE权限的一个例子: ```java if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(thisActivity, new String[]{Manifest.permission.CALL_PHONE}, MY_PERMISSIONS_REQUEST_CALL_PHONE); } ``` 同样地,当涉及到发送短信时也需要遵循相同的流程来获得SEND_SMS权限。 #### API调用实例 一旦获得了必要的权限之后,就可以利用Intent对象来进行实际操作了。下面给出了一段简单的Java代码片段展示如何发起一次呼叫动作: ```java Uri number = Uri.parse("tel:" + phoneNumber); Intent callIntent = new Intent(Intent.ACTION_CALL, number); startActivity(callIntent); ``` 而要发送一条短消息则可以采用 SmsManager 类提供的方法: ```java SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(phoneNumber, null, messageBody, sentPI, deliveredPI); ``` 这里需要注意的是 ACTION_CALL 和 SmsManager 的使用均依赖于之前成功取得的相关权限。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值