`

一个简单的拨号器 附源码

阅读更多
开发一个简单的拨号器。
开发一个应用的步骤:
小应用的步骤:
1.设计界面
2.activity
3.设计业务层 如果程序比较简单就将代码直接写在activity中
大应用的步骤
1.设计业务层。用android junit测试完成
2.设计界面
3.设计activtiy
我们按照一个简单的应用来开发;
1.设计界面
三个元素,标题,文本输入框,按钮

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"
    
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    
    />
    <EditText
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/phoneNumber"
    />
    <Button
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/buttonText"
    android:id="@+id/button"
    />
</LinearLayout>


String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">请输入手机号码</string>
    <string name="app_name">完美拨号器</string>
<string name="buttonText">拨打这个号码</string>
</resources>


R.java
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package cn.perfect.call;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int icon=0x7f020000;
    }
    public static final class id {
        public static final int button=0x7f050001;
        public static final int phoneNumber=0x7f050000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int buttonText=0x7f040002;
        public static final int hello=0x7f040000;
    }
}


2.设计activtiy
package cn.perfect.call;

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 PhoneActivity extends Activity {
	/**
	 * 将从控件中得到值声明成全局变量,这样每次都只查询一次就行
	 * 第二次就直接从这个全局变量中拿就可以了 这样提高效率
	 */
	private EditText phoneEditText;
	private Button   callButton;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //得到文本框的内容
        phoneEditText =(EditText) this.findViewById(R.id.phoneNumber);
        callButton =(Button) this.findViewById(R.id.button);
        /**
         * 给按钮添加一个点击事件 onclicklistenter 的参数是OnClickListener是一个接口
         * 我们要这个接口的一个实现类,要得到这个接口的实现类的方法有两种,一个是创建一个类
         * 实现这个接口,第二种方法就是匿名内部类
         */
        callButton.setOnClickListener(new OnClickListener ()
        {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				String numberString = phoneEditText.getText().toString();
				/**
				 * 接下来的操作就是将这个电话号码播出去
				 * 要调用android的方法来实现,为了保证安全,在使用电话拨号服务的时候要声明电话
				 * 拨号权限,这个权限的功能是在安装这个应用的时候,如果你涉及到了拨号服务,就会
				 * 提示用户:“这个应用使用了电话拨号服务 你是否还要安装” 
				 * 添加这个拨号权限是在功能文件AndroidManifest.xml中添加,<uses-permission android:name="android.permission.CALL_PHONE"/>
				 * 那么android还有什么权限设置呢 在这个文件中查看
				 * android-sdk-windows\docs\reference\android\Manifest.permission.html
				 * 发短信 接受短信 刻录语音都要加权限 
				 */
				
				//现在添加了拨号权限 然后我们开始拨号 拨号要创建一个名为意图的对象
				/**
				 * Intent (动作,数据) 两个参数
				 * Intent就是将动作和参数交给android 然后让他判断这个动作应该使用什么来执行
				 * "tel:"+numberString 这个参数的格式是android规定的;
				 */
				Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+numberString));
				/**
				 * 意图对象生成后 要传递给操作系统 执行这个意图
				 * 内部类访问外部类的实例的方法
				 */
				PhoneActivity.this.startActivity(intent);
			}
        	
        });
        
    }
}

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.perfect.call"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/xx" android:label="@string/app_name">
        <activity android:name=".PhoneActivity"
                  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-sdk android:minSdkVersion="7" />
	<uses-permission android:name="android.permission.CALL_PHONE"/>
</manifest> 

3.由于我们将业务写在了activity里所以没有写业务层
4.运行项目
[img]
http://dl.iteye.com/upload/picture/pic/55839/8d16bc79-6ecb-329b-b859-9f42897b6c00.bmp
[/img]
这是在电脑上运行的程序 所以不能拨打现实生活中的电话号码,我们要验证项目是否可以拨打号码,那就再开一个模拟终端;然后那个端口号码就是这个模拟终端的电话号码,那么我们来用这个程序拨打5556这个电话,结果打通了。程序验证成功;


1
0
分享到:
评论

相关推荐

    一个简单的拨号器 附

    标题中的“一个简单的拨号器”表明这是一个关于电话拨号软件的应用程序,可能是为移动设备或桌面系统设计的。在IT行业中,拨号器通常指的是能够自动拨打预设电话号码的软件工具,常用于自动化测试、电话营销或者个人...

    嵌入式3G拨号上网的方法附源码

    在嵌入式系统中,3G拨号上网是一种常见的实现移动数据通信的方式,尤其在物联网设备、路由器等应用中广泛使用。本资源提供了一种在嵌入式Linux系统上...对于开发人员来说,这是一个学习和实践嵌入式3G通信的宝贵资源。

    Android 打电话程序(附源码)

    通常,拨号器界面包含一个EditText用于输入电话号码,以及一个按钮用于发起通话。在布局文件(如`activity_phone.xml`)中,可以这样设计: ```xml android:id="@+id/phone_number" android:layout_width=...

    vc++ 应用源码包_1

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_2

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_3

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_5

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    vc++ 应用源码包_6

    压缩包内有两个源码包,一个是注册机源程序,另一个是解密机的源程序,一套完整的参考实例。 VC+MapX源码含GPS跟踪演示 VC3D 利用VC编程在界面上实现3D文字 在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自...

    易语言ADSL帐号密码获取源码(附模块)

    在压缩包中的“新建ADSL帐号密码获取文件夹”可能包含了一整个项目文件结构,包括源码文件、模块文件、编译后的程序以及可能的文档或说明。用户可能需要将这些文件解压后,在易语言的开发环境中打开并编译,以便运行...

    vc++ 开发实例源码包

    C#源码,实现简单游览器。 RangeScan扫描器源代码 ip地址扫描,发送邮箱。 ResizableLib 测试开源界面库Resizable。 RsPicture 自定义了一个图片库,然后引用测试。 SimplePlayer 简单的媒体播放源码。 Skin_...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    2.2 建立第一个Android项目(HelloAndroid!) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的...

    windows mobile 拨号程序

    6. **Windows Mobile中如何建立GPRS连接以便Socket能正常通信(附源码).doc**:这是一个文档,详细解释了在Windows Mobile平台上建立GPRS连接以便使用Socket进行网络通信的步骤,并提供了源代码示例。这对于开发者...

    UNIX环境高级编程和源代码

    第18章 调制解调器拨号器 435 18.1 引言 435 18.2 历史 435 18.3 程序设计 436 18.4 数据文件 437 18.5 服务器设计 439 18.6 服务器源码 439 18.7 客户机设计 463 18.7.1 终端行规程 463 18.7.2 一个进程还是两个...

    Core Linux Installation Guide

    - 系统会询问选择一个镜像站点,请选择离您最近的一个。注意:如果您之前访问过 SourceForge 并设置了首选镜像站点,那么系统将自动为您选择该站点。 - 接下来系统会询问您保存文件的位置,请选择一个安全的地方,...

    UNIX环境高级编程(PDF)

    PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威, 概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员—无论是初学者还是专家级人士 —都是一...

    UNIX环境高级编程 不扣分哦

    在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的...

    UNIX环境高级编程

    在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的...

    UNIX环境高级编程中文版

    在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序的程序等。 本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的...

Global site tag (gtag.js) - Google Analytics