<p style="text-align: left;"><strong>一、创建</strong> <strong>Android</strong><strong>工程</strong></p> 

<p style="text-align: left;">Project name:Call</p> 

<p style="text-align: left;">BuildTarget:Android2.1</p> 

<p style="text-align: left;">Application name:拨打电话</p> 

<p style="text-align: left;">Package name:com.changcheng.Activity</p> 

<p style="text-align: left;">Create Activity:Call</p> 

<p style="text-align: left;">Min SDK Version:7</p> 

<p style="text-align: left;"><strong>二、编辑工程</strong></p> 

<p style="text-align: left;">1.编辑strings.xml文件内容为:</p> 

<p style="text-align: left;"><!--l version=<-->"1.0" encoding=<em>"utf-8"</em>?></p> 

<p style="text-align: left;"></p> 

<p style="text-align: left;">"hello">请输入 手机号码:</p> 

<p style="text-align: left;">"app_name">拨打电话</p> 

<p style="text-align: left;">"button_call">呼叫</p> 

<p style="text-align: left;"></p> 

<p style="text-align: left;">2.编辑main.xml文件内容为:</p> 

<p style="text-align: left;"><!--l version=<-->"1.0" encoding=<em>"utf-8"</em>?></p> 

<p style="text-align: left;">"http:///apk/res/android"</p> 

<p style="text-align: left;">android:orientation=<em>"vertical"</em> android:layout_width=<em>"fill_parent"</em></p> 

<p style="text-align: left;">android:layout_height=<em>"fill_parent"</em>></p> 

<p style="text-align: left;"><!-- 标题标签 --></p> 

<p style="text-align: left;">"fill_parent"</p> 

<p style="text-align: left;">android:layout_height=<em>"wrap_content"</em> android:text=<em>"@string/hello"</em> /></p> 

<p style="text-align: left;"><!-- 电话号码输入框 --></p> 

<p style="text-align: left;">"fill_parent"</p> 

<p style="text-align: left;">android:layout_height=<em>"wrap_content"</em></p> 

<p style="text-align: left;">android:id=<em>"@+id/mobile"</em>/></p> 

<p style="text-align: left;"><!-- 拨打电话按钮 --></p> 

<p style="text-align: left;"></p> 

<p style="text-align: left;"></p> 

<p style="text-align: left;">"wrap_content" </p> 

<p>android:layout_height=<em>"wrap_content"</em></p> 

<p>android:text=<em>"@string/button_call"</em></p> 

<p>android:id=<em>"@+id/button_call"</em>/></p> 

<p></p> 

<p>注意,我们在电话号码输入框和拨打电话按钮中添加了android:id属性。如电话号码输入框的android:id=”@+id/mobile”,@代码R.java,+id代码添加id静态内部类,mobile代表向id类中添加一个常量成员。ADT将自动为我们生成常量值。</p> 

<p>3.编辑Call.java内容:</p> 

<p><strong>package</strong> com.changcheng.Activity;</p> 

<p><strong>import</strong> .Activity;</p> 

<p><strong>import</strong> android.content.Intent;</p> 

<p><strong>import</strong> android.net.Uri;</p> 

<p><strong>import</strong> android.os.Bundle;</p> 

<p><strong>import</strong> android.view.View;</p> 

<p><strong>import</strong> android.view.View.OnClickListener;</p> 

<p><strong>import</strong> android.widget.Button;</p> 

<p><strong>import</strong> android.widget.EditText;</p> 

<p><strong>public</strong> <strong>class</strong> Call <strong>extends</strong> Activity {</p> 

<p>/** Called when the activity is first created. */</p> 

<p>@Override</p> 

<p><strong>public</strong> <strong>void</strong> onCreate(Bundle savedInstanceState) {</p> 

<p><strong>super</strong>.onCreate(savedInstanceState);</p> 

<p>setContentView(R.layout.<em>main</em>);</p> 

<p>// 根据ID获取按钮</p> 

<p>Button button = (Button) <strong>this</strong>.findViewById(.<em>button_call</em>);</p> 

<p>// 为按钮添加被单击事件</p> 

<p>button.setOnClickListener(<strong>new</strong> OnClickListener(){</p> 

<p>@Override</p> 

<p><strong>public</strong> <strong>void</strong> onClick(View v) {</p> 

<p>// 根据ID获取编辑框</p> 

<p>EditText editText = (EditText) findViewById(.<em>mobile</em>);</p> 

<p>// 获取电话号码</p> 

<p>String mobile = editText.getText().toString();</p> 

<p>// 生成呼叫意图</p> 

<p>Intent intent = <strong>new</strong> Intent(Intent.<em>ACTION_CALL</em>, Uri.<em>parse</em>("tel:"+ mobile));</p> 

<p>// 开始呼叫</p> 

<p>startActivity(intent);</p> 

<p>}</p> 

<p>});</p> 

<p>}</p> 

<p>}</p> 

<p>4.编辑AndroidManifest.xml内容:</p> 

<p><!--l version=<-->"1.0" encoding=<em>"utf-8"</em>?></p> 

<p>"http:///apk/res/android"</p> 

<p>package=<em>"com.changcheng.Activity"</em></p> 

<p>android:versionCode=<em>"1"</em></p> 

<p>android:versionName=<em>"1.0"</em>></p> 

<p>"@drawable/icon" android:label=<em>"@string/app_name"</em>></p> 

<p>".Call"</p> 

<p>android:label=<em>"@string/app_name"</em>></p> 

<p></p> 

<p>"android.intent.action.MAIN" /></p> 

<p>"android.intent.category.LAUNCHER" /></p> 

<p></p> 

<p></p> 

<p></p> 

<p>"7" /></p> 

<p><!-- 注册使用拨打电话功能的权限 --></p> 

<p>"android.permission.CALL_PHONE"/></p> 

<p></p> 

<p>注册使用拨打电话功能的权限,如果没有注册这个,将使用不了系统的拨打电话功能。以后在我们的应用程序开发中,有使用到系统功能的必须在这个文件中进行注册。我们可以查看Android的帮助手册都有哪些功能。(.../android-sdk-windows/docs/reference/android/Manifest.permission.html)</p> 

<p><strong>三、启动模拟器</strong></p> 

<p>我们给谁打电话?我们可以启动两个模拟器。使用一个模拟器给另一个模拟器拨打。首先我们使用工具栏上的手机图标再添加一个Android2.1的模拟器,另记一个名称。</p> 

<p>在启动两个模拟器之前,我们需要模拟器能“接收到信号”。如果我们的机器是联网的,启动模拟器后,主界面显示信号强度的旁边会有一个3G的字样,这说明模拟器已经能接收到信号了。如果我们的机器不能联网,那么将自己的IP地址、网关和DNS服务器都设置为相同的值,比如都设置为192.168.0.100。如果我们的机器是在局域网下,但没有联网,那么将自己的网关和DNS设置为路由的IP即可,一般情况下路由的IP是192.168.0.1。</p> 

<p>OK,现在我们启动两个模拟器!</p> 

<p><strong>四、拨打电话</strong></p> 

<p>我们启动模拟器后,可以看到模拟器窗口的标题栏上有5554和55556的字样。这是模拟器监听的端口即——127.0.0.1:5554。</p> 

<p>在工程上右键盘,Run As Android Application,选择其中的一个模拟器。比如选择了端口为5554的模拟器。OK,程序被加载到模拟器中了,会被自动运行。</p> 

<p>我们在电话号码编辑框中输入5556(接收端模拟器的端口号),点击呼叫按钮!</p> 

<p>OK,你看到效果了吗?5554模拟器显示正在呼叫,5556模拟器有来电显示...。</p> 

<p><strong>五、使用</strong><strong>ADT</strong><strong>插件呼叫模拟器</strong></p> 

<p>如果机器太慢,无法启动两个模拟器,我们可以只启动一个模拟器。然后在菜单windows->show view->other->Android->Emulator Control打开Emulator Control面板。</p> 

<p>Telephony Actions分组框中,Voice是呼叫,SMS是发送短信。Incoming number是模拟器的端口号,我们也可以使用这个功能给我们的模拟器拨打电话或发送短信。</p>