一、创建 Android工程
Project name:Call
BuildTarget:Android2.1
Application name:拨打电话
Package name:com.changcheng.Activity
Create Activity:Call
Min SDK Version:7
二、编辑工程
1.编辑strings.xml文件内容为:
<!--l version=<-->"1.0" encoding="utf-8"?>
"hello">请输入 手机号码:
"app_name">拨打电话
"button_call">呼叫
2.编辑main.xml文件内容为:
<!--l version=<-->"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- 标题标签 -->
"fill_parent"
android:layout_height="wrap_content" android:text="@string/hello" />
<!-- 电话号码输入框 -->
"fill_parent"
android:layout_height="wrap_content"
android:id="@+id/mobile"/>
<!-- 拨打电话按钮 -->
"wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_call"
android:id="@+id/button_call"/>
注意,我们在电话号码输入框和拨打电话按钮中添加了android:id属性。如电话号码输入框的android:id=”@+id/mobile”,@代码R.java,+id代码添加id静态内部类,mobile代表向id类中添加一个常量成员。ADT将自动为我们生成常量值。
3.编辑Call.java内容:
package com.changcheng.Activity;
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 Call extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 根据ID获取按钮
Button button = (Button) this.findViewById(R.id.button_call);
// 为按钮添加被单击事件
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// 根据ID获取编辑框
EditText editText = (EditText) findViewById(R.id.mobile);
// 获取电话号码
String mobile = editText.getText().toString();
// 生成呼叫意图
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile));
// 开始呼叫
startActivity(intent);
}
});
}
}
4.编辑AndroidManifest.xml内容:
<!--l version=<-->"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
package="com.changcheng.Activity"
android:versionCode="1"
android:versionName="1.0">
"@drawable/icon" android:label="@string/app_name">
".Call"
android:label="@string/app_name">
"android.intent.action.MAIN" />
"android.intent.category.LAUNCHER" />
"7" />
<!-- 注册使用拨打电话功能的权限 -->
"android.permission.CALL_PHONE"/>
注册使用拨打电话功能的权限,如果没有注册这个,将使用不了系统的拨打电话功能。以后在我们的应用程序开发中,有使用到系统功能的必须在这个文件中进行注册。我们可以查看Android的帮助手册都有哪些功能。(.../android-sdk-windows/docs/reference/android/Manifest.permission.html)
三、启动模拟器
我们给谁打电话?我们可以启动两个模拟器。使用一个模拟器给另一个模拟器拨打。首先我们使用工具栏上的手机图标再添加一个Android2.1的模拟器,另记一个名称。
在启动两个模拟器之前,我们需要模拟器能“接收到信号”。如果我们的机器是联网的,启动模拟器后,主界面显示信号强度的旁边会有一个3G的字样,这说明模拟器已经能接收到信号了。如果我们的机器不能联网,那么将自己的IP地址、网关和DNS服务器都设置为相同的值,比如都设置为192.168.0.100。如果我们的机器是在局域网下,但没有联网,那么将自己的网关和DNS设置为路由的IP即可,一般情况下路由的IP是192.168.0.1。
OK,现在我们启动两个模拟器!
四、拨打电话
我们启动模拟器后,可以看到模拟器窗口的标题栏上有5554和55556的字样。这是模拟器监听的端口即——127.0.0.1:5554。
在工程上右键盘,Run As Android Application,选择其中的一个模拟器。比如选择了端口为5554的模拟器。OK,程序被加载到模拟器中了,会被自动运行。
我们在电话号码编辑框中输入5556(接收端模拟器的端口号),点击呼叫按钮!
OK,你看到效果了吗?5554模拟器显示正在呼叫,5556模拟器有来电显示...。
五、使用ADT插件呼叫模拟器
如果机器太慢,无法启动两个模拟器,我们可以只启动一个模拟器。然后在菜单windows->show view->other->Android->Emulator Control打开Emulator Control面板。
Telephony Actions分组框中,Voice是呼叫,SMS是发送短信。Incoming number是模拟器的端口号,我们也可以使用这个功能给我们的模拟器拨打电话或发送短信。
分享到:
相关推荐
综上所述,开发Android打电话程序涉及了Android权限管理、Intent使用、系统服务交互以及UI设计等多个方面,开发者需要对Android系统有深入理解,并且注重用户体验和安全性,以打造一个稳定、可靠的拨打电话应用。
总结,开发Android应用程序,尤其是涉及手机通信录功能的应用,需要掌握Android开发的基本技术,如布局设计、数据库操作、Intent服务的使用以及用户交互的处理。同时,充分的测试和调试也是保证应用质量的关键步骤。...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页内容。当我们需要在WebView中实现拨打电话的功能时,需要理解Android权限管理、WebView加载本地HTML以及JavaScript与Android原生代码...
在Android平台上,开发一款能够拨打电话和发送短信的小程序是一项常见的任务,这涉及到与系统级服务的交互以及用户数据管理。下面将详细讲解这个过程涉及的关键知识点。 首先,要实现拨打电话功能,开发者需要使用`...
在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现与HTML、CSS和JavaScript的交互。这篇博客主要讲解如何使用Android WebView来加载HTML界面,并实现点击HTML中的链接...
在Android应用开发中,Intent是一种强大的机制,用于在组件之间传递消息并启动操作。本案例主要探讨如何利用Intent实现拨打电话和发送短信的功能。首先,我们需要理解Intent的基本概念。 Intent在Android系统中扮演...
在Android平台上,开发一个能拨打电话的应用程序是一个基础但实用的功能。这个教程将带你了解如何为初学者实现这样的功能,创建一个简单的电话拨号器应用。我们主要关注以下几个关键知识点: 1. **权限声明**: 在...
在Android平台上,开发一款应用程序来读取用户的联系人信息并实现点击拨打电话的功能,是常见的需求之一。这个项目,"基于android studio的读取联系人并可点击拨打电话",显然是一个教学或示例项目,它借鉴了郭霖的...
在Android平台上,开发一款能够拨打电话的应用程序是一个常见的任务,对于初学者来说,这是一个很好的实践项目。本实例将详细介绍如何创建一个简单的Android应用,让用户输入电话号码并进行拨号。 首先,我们需要...
本项目"Android开发第一个ndk程序"旨在帮助新手入门,理解如何在Android应用中集成和使用NDK。 首先,我们需要了解NDK的基本概念。NDK提供了一种方式,让开发者可以在Android平台上编译和运行原生代码,而原生代码...
这个"Android开发实例:打电话.zip"文件包含了一个具体的示例,教你如何在Android应用中集成拨打电话的功能。以下是关于这个话题的详细知识: 1. **Android权限管理**: 在Android应用中,访问电话服务需要获取...
在安卓平台上,开发一款能够实现打电话和发送短信的小程序是一项基础但重要的技能。这个小程序针对的是安卓6.0及以上版本的系统,意味着它需要遵循安卓 Marshmallow (API 级别23) 及以上版本的开发规范。下面将详细...
在Android平台上,开发一个定时打电话的小程序涉及到多个关键知识点,包括Android系统服务、AlarmManager、BroadcastReceiver、Intent以及电话权限管理。以下是对这些知识点的详细解释: 1. **Android系统服务...
QT发短信打电话程序是基于QT框架开发的一种应用程序,它能够集成GSM(Global System for Mobile Communications,全球移动通信系统)模块来实现短信发送和电话拨打的功能。QT是一个跨平台的C++图形用户界面应用程序...
在Android系统中,拨打电话和挂断电话通常是通过标准的Intent机制来实现的,但有时候开发者可能需要在特定情况下通过程序逻辑控制这些操作,比如在自动化测试或者特殊应用中。本教程将介绍如何利用Java的反射机制来...
6. **Android Studio IDE**:作为Google官方推荐的Android开发工具,Android Studio提供了强大的集成开发环境,包括代码自动补全、调试工具、构建系统等。了解如何使用它来管理项目、编写代码、运行和调试应用,是每...
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
在Android平台上,开发一个自动接听电话的程序涉及到多个核心知识点,包括权限管理、来电监听、系统服务、广播接收器以及电话API的使用。下面将详细阐述这些关键点。 首先,**权限管理**是Android应用程序的基础,...
在Android平台上,开发一个电话拨号代码程序涉及到对Android系统的理解,特别是它的权限管理、Intent机制以及电话服务API。下面将详细介绍这些知识点。 首先,Android系统是一个基于Linux内核的开源移动操作系统,...