博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发(一)拨打电话程序
阅读量:4069 次
发布时间:2019-05-25

本文共 5486 字,大约阅读时间需要 18 分钟。

<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://schemas.android.com/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> android.app.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(R.id.<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(R.id.<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://schemas.android.com/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>

转载地址:http://mdaji.baihongyu.com/

你可能感兴趣的文章
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
Android/Linux 内存监视
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
剑指offer算法题分析与整理(三)
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
WAV文件解析
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
QT打开项目提示no valid settings file could be found
查看>>
android 代码实现圆角
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>
coursesa课程 Python 3 programming course_2_assessment_7 多参数函数练习题
查看>>
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
Visual Studio 2010:C++0x新特性
查看>>
所谓的进步和提升,就是完成认知升级
查看>>