Android开发-教你如何使用拨号盘

转载 2012年03月27日 21:30:22

现在你知道Intent是什么了,是时候来看它如何运转的了。本节向你展示如何使用DIAL_ACTION 这个Intent来打开电话的拨号盘。你将用你的Intent来传递一个电话号码。如果应用程序工作正常,你将会看到由Intent传递,而显示在拨号盘内的号码。
     第一步是为这个活动创建一个项目(具体操作见第五章:Android程序员向导目录)。把项目命名为AndroidPhoneDialer。下面的插图就是这个项目的新Android项目向导(略)。
    在Eclipse内打开的新的应用程序,第一个要做的就是从main.xml中移除包含Hello World 声明的TextView。在删除了TextView后,main.xml文件应当看起来如下:
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 

</LinearLayout> 
你需要增加两个新的包装到你的项目中来使用DIAL_ACTION Intent,如下,第一个包装允许你设置Intents并且第二个允许你来分析URIs。
import android.content.Intent; 
import android.net.Uri;

注意
     对于DIAL_ACTION这个Intent有一些不同的Intent过滤器可以使用。你正在使用的是允许你把号码作为了一个URI来传递的过滤器。
    下一步就是来创建你的Intent。创建一个Intent的语法如下:
Intent <intent_name> = new Intent(<Android_Intent>,<data>)
    对于你的应用程序,把第一个参数<intent_name>用DialIntent替换掉。要获得第二个参数的数值,请参考Activity Action中的列表。(列表在文章中:什么是Intent)。要呼叫拨号盘,你需要使用DIAL_ACTION Intent。要正确的呼叫Intent,使用Intent.DIAL_ACTION这个格式。最后的参数<data>,就是电话号码。DIAL_ACTION intent把号码作为一个URI。因此,你需要使用Uri.parse来分析出电话号码。使用Uri.parse将确保DIAL_ACTION intent能够理解你试图拨打的号码。你传递了一个Uri.parse的字符串来展示你要拨打的号码,在本例中是 "tel:5551212" 。
    为你项目创建的最后一个呼叫应该像这样:
Intent DialIntent = new 
Intent(Intent.DIAL_ACTION,Uri.parse("tel:5551212"));

提示
    你使用记号 tel:<phone_number>来呼叫一个指定的电话号码。你还可以使用voicemail来替代tel:呼出一个电话voicemail的快捷方式。
    Intent创建后,你现在必须告诉Android你想要拨号盘在新的活动中被启动。要这样做,你使用setLaunchFlags()的Intent方法。你必须为启动来传递setLaunchFlags()合适的参数。下面是可以设置接受启动旗帜的一组列表:
注意
在其它情况下,可能会有超过一个的旗帜被设置来完成希望的结果。 
● NO_HISTORY_LAUNCH 启动活动,不记录在系统启动历史中 
● SINGLE_TOP_LAUNCH 告诉系统不要启动活动,如果该活动已经在运行 
● NEW_TASK_LAUNCH 启动活动 
● MULTIPLE_TASK_LAUNCH 启动活动,即使它已经在运行了 
● FORWARD_RESULT_LAUNCH 允许新的活动来接受结果,这个结果通常被转递给现存的活动。本例中,你要使用intent.NEW_TASK_LAUNCH,这样可以简单的让你打开一个新的拨号盘活动示例:
DialIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH ); 
    创建拨号盘的最后一步是启动活动。(更精确的说,你告诉Android你有一个作为新任务来启动的拨号盘。最终由Android来启动拨号盘活动)。要告诉Android你要启动拨号盘,你需要使用startActivity():
startActivity(DialIntent);
    请注意到你把intent传递到startActivity()。这个Intent然后传递到Andriod,然后活动被执行。完整的AndroidPhoneDialer.java文件代码应当如下:
package android_programmers_guide.AndroidPhoneDialer; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.net.Uri; 
public class AndroidPhoneDialer extends Activity { 
/** Called when the Activity is first created. */ 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
setContentView(R.layout.main); 
/** Create our Intent to call the Dialer */ 
/** Pass the Dialer the number 5551212 */ 
Intent DialIntent = new 
Intent(Intent.DIAL_ACTION,Uri.parse("tel:5551212")); 
/** Use NEW_TASK_LAUNCH to launch the Dialer Activity */ 
DialIntent.setLaunchFlags(Intent.NEW_TASK_LAUNCH ); 
/** Finally start the Activity */ 
startActivity(DialIntent); 


    你现在应当来编译AndroidPhoneDialer并且在模拟器中运行它。处理编译和运行应用程序的过程在前面的章节中描述过了。你应当已经熟悉这些过程了。一旦你运行应用程序,模拟器启动。在漫长的启动过程后,你的活动被启动。

提示
    保持模拟器运行是一个好主意,即使你完成了你的活动并且以及返回到代码窗口。大多数人的本能习惯是在他们完成了测试活动后关闭模拟器。但是,我发现使模拟器一直开启会帮助两个主要的问题。第一个就是启动模拟器要花费大量的时间。保持模拟器开启会避开漫长的开启时间。第二,我已经注意到有好几次当我做一些小的修改到一个活动,而且它们没有被复制到模拟器。保持模拟器开启似乎可以缓解这个问题。如果你在模拟器中有问题,在你的电脑中移除userdata-qemu.img文件。这个会让模拟器从一个干净的镜像启动。

    如果你正确的跟从本例中的代码,你应当能看到下面的结果(略):
如你所见,你已经打开了电话的拨号盘。这个拨号盘显示了你传递的号码,5551212。使用模拟器,点击呼叫按钮。现在电话应当虚拟的呼叫555-1212。显示拨号盘是有用的,加入你创建了一个应用程序运行用户来在呼叫前可以编辑号码,或者确认他们真的想要呼叫这个号码。那么你应当怎么做来让应用程序为你打电话呢?答案就在下一节中。

android 调用拨号盘拨打电话及其跳转系统设置界面

android 调用拨号盘拨打电话public void dialPhoneNumber(String phoneNumber) { Intent intent = new Intent(In...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

一些Android拨号盘的基本代码

基本代码 *#*#4636#*#* — 显示手机信息、电池信息、电池记录、使用统计数据、WiFi 信息 *#*#7780#*#* –重设为原厂设定,不会删除预设程序,及 SD 卡档案 *2767...

Android拨号器的实现

Android自带了拨号功能和拨号器,但是在很多的应用中,需要在自己的应用中集成拨号的功能,方便客户直接点击 就可以完成打电话,所以这样的调用Android拨号器的功能还是非常有实用价值的,下面我们...

Android 直接拨号和调用拨号盘

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumbers[0])); //call动作为直接拨打电...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Android开发——手机拨号程序实现

在上一篇文章中,我们实现了第一个程序:helloWorld,并成功测试完成。还给大家介绍了Android项目结构和说明。现在写一个手机拨号程序:          首先,我们新建一个项目:phone...

Android开发之实现拨号功能

Android开发之实现拨号功能 在我们刚开始接触Android入门开发时会涉及到如何调用系统拨号功能实现拨号功能,在这里,我们实现调用系统拨号并且把用户输入的号码传递到系统拨号盘,这样也是为了可以...
  • jxnk25
  • jxnk25
  • 2015年10月08日 08:46
  • 1150

Android调用拨号界面、拨打电话功能

1、只调用拨号界面,不拨出电话 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(...

Android拨号器---熟练控件与布局的应用

Android版的简易拨号器 实现的内容主要由界面布局设计和Activity的简单函数组成 首先是界面布局设计,最外层是垂直线性布局,分成三个部分:文本框,数字按键和功能键,在数字键部分采用网格布局,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发-教你如何使用拨号盘
举报原因:
原因补充:

(最多只允许输入30个字)