您的位置:首页 > 移动开发 > Android开发

Android项目学习笔记之电话拨号器

2013-09-09 13:50 585 查看
开发环境:
Win XP + eclipse-jee-helios(版本号3.6) + ADT(版本10.0.1) + Android SDK(版本10);
模拟器及真机测试环境:Android2.2
1.软件界面的设计:



图1

首先在phone->res->values中的string.xml中添加布局中需要的字符串,string.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">电话拔号器</string>
<string name="mobile">请输入手机号</string>
<string name="button">拔号</string>
</resources>
以键值对的形式出现,如
<string name="app_name">电话拔号器</string>
定义字符串“电话拨号器”的id为“
app_name
,那么在布局中就可以利用相应的id值来引用字符串。
在phone->res->layout中的main.xml中添加布局的代码,从图1可以看到该布局是垂直线性布局,具体的实现代码如下:
<?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"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/mobile"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/mobile"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"
/>
</LinearLayout>

2.给拨号钮添加点击事件的处理对象
具体的实现思路是这样的:首先根据控件的id在所有的控件中找到拨号button按钮,设置监听,即当点击拨号按钮时,执行相应的拨号操作。
这里应该注意的是,我们自己编写的代码调用Android手机自带的拨号功能,判断是由哪一个Activity来提供功能的?那么激活这个Activity就可以让其帮我们打电话,要激活它,就需要与这个
Activity自带的意图过滤器匹配,并在清单文件中出示打电话的权限(Android的安全机制)。
在phone->src->cn.hao.phone中的MainActivity.java中添加实现拨号功能按钮的代码,在MainActivity类中定义如下全局变量
private EditText mobileText;
在onCreate()方法中添加如下代码
mobileText = (EditText) findViewById(R.id.mobile);
Button button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(new ButtonClickListener());
方法
ButtonClickListener()在onCreate()代
的代码如下
private final class ButtonClickListener implements View.OnClickListener{
public void onClick(View v) {
String number = mobileText.getText().toString();
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.setData(Uri.parse("tel:"+ number));
startActivity(intent);
//方法内部会自动为Intent添加别:android.intent.category.DEFAULT
}
}

3.在清单文件AndroidManifest.xml中出示打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE"/>
注意:该权限的声明应该在<application></application>标签的外部。
运行的结果如下:


利用两个模拟器模拟打电话的结果如下:



小结:这个程序功能的实现并不是完全由我们自己编写,感兴趣的朋友可以看一下Android手机自带的拨号功能的源代码(至少几万吧),而是我们通过与Android手机自带的拨号功能的意图匹配,并出示相应操作的权限完成的。

附件:http://down.51cto.com/data/2363460
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android