一个可打电话,发短信、读取通讯录的小程序。
手机拨号器的制作流程:
1.实现拨号器的页面布局
2.对按钮进行监听
3.实现编辑框的输入
4.实现对每一个数字按键的绑定
5.实现删除功能
6.实现拨号功能(添加权限)
7.实现添加联系人功能
8.实现发短信功能(新建xml页面,页面跳转)
9.实现发邮件功能
10.手残关闭了eclipse左侧窗口怎么办
11.通信录
1.实现拨号器的页面布局
activity_main.xml
<LinearLayout //线性布局
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" > //水平布局
<Button
android:id="@+id/contact"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1" //布局比重
android:text="联系人"/>
<Button
android:id="@+id/cai"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:text="彩信"/>
<Button
android:id="@+id/mail"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:text="邮件"/>
</LinearLayout>
<EditText
android:id="@+id/et_showview"
android:layout_width="fill_parent"
android:layout_height="120dip"
android:layout_marginTop="20dip"
android:ems="10" //设置EditText的宽度为10个字符的宽度,超出的部分将不显示
android:background="#ffffffff" //背景色
android:textSize="40sp" //字体大小
android:textStyle="bold" //字体加粗
android:textColor="#ff333333" > //字体颜色
<requestFocus /> //获得输入的光标
</EditText>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dip"
android:gravity="center_horizontal" //水平居中
android:orientation="vertical" > //垂直布局
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_1"
android:text="1" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_2"
android:text="2" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_3"
android:text="3" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_4"
android:text="4" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_5"
android:text="5" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_6"
android:text="6" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_7"
android:text="7" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_8"
android:text="8" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_9"
android:text="9" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_xing"
android:text="*" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_0"
android:text="0" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_jing"
android:text="#" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_dial"
android:text="拨号" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_mes"
android:text="信息" />
<Button
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_weight="1"
android:id="@+id/btn_del"
android:text="删除" />
</LinearLayout>
</LinearLayout>
运行到手机上的界面如下:
以下代码参照学姐博客 http://429899791.iteye.com/blog/2206277
2.对按钮进行监听
给联系人按钮添加:android:onClick="addContact"
给彩信按钮添加:android:onClick="cai"
给邮件按钮添加:android:onClick="sendmail"
给拨号按钮添加:android:onClick="dial"
给删除按钮添加:android:onClick="delete"
给其余数字按钮添加:android:onClick="digital_click"
3.实现编辑框的输入
MainActivity.java
public class MainActivity extends Activity {
EditText textResult;//显示框
StringBuffer currentNum=new StringBuffer();//用于接收输入
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//保存Activity的状态
setContentView(R.layout.activity_main);
textResult=(EditText)findViewById(R.id.et_showview);
}
}
4.实现对每一个数字按键的绑定
接下来就是每一个数字按键绑定的方法处理,每按一个键,就记录下text,然后添加到StringBuffer里面
MainActivity.java
public void digital_click(View view){
Button btnDigital=(Button) view;
String text=btnDigital.getText().toString();
currentNum.append(text);
display();
}
并显示到编辑框上
private void display() {
// TODO Auto-generated method stub
textResult.setText(currentNum.toString());
}
5.实现删除功能
MainActivity.java
public void delete(View view){
if(currentNum.length()>=1){
currentNum.delete(currentNum.length()-1, currentNum.length());
}
if(currentNum.length()==0){
Toast toast=Toast.makeText(this,"请输入号码", 100);
toast.show();
display();
}
textResult.setText(currentNum);
}
迫不及待的想运行一下了
按删除键后
6.实现拨号功能(添加权限)
接下来就是最重要的部分了,拨号键绑定方法:
MainActivity.java
public void dial(View view){
EditText text=(EditText)findViewById(R.id.et_showview);
String number=text.getText().toString();
if(currentNum.length()==0){
Toast toast=Toast.makeText(this,"请输入号码", 100);
toast.show();
display();
}
else{
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);//设置事件跳转到系统默认的拨号页面
intent.setData(Uri.parse("tel:"+number));//传送数据
startActivity(intent);
//方法内部会自动为Intent添加类别:android.intent.categoty.DEFAULT
}
}
接下来是很重要的部分,添加权限
AndroidManifest.xml
<uses-permission
android:name="android.permission.CALL_PHONE" />
赶紧给你的朋友打个电话试一下
7.实现添加联系人功能
MainActivity.java
public void addContact(View view){
Intent it=new Intent(Intent.ACTION_INSERT,Uri.withAppendedPath(Uri.parse("content://com.android.contacts"), "contacts"));
it.setType("vnd.android.cursor.dir/person");
String number=textResult.getText().toString();
it.putExtra(android.provider.ContactsContract.Intents.Insert.SECONDARY_PHONE, number);
startActivity(it);
}
运行效果:
8.实现发短信功能
点击"信息”按钮,跳转到一个新的界面
首先,遇到的第一个问题就是如何新建一个xml文件
接下就是设计新页面的布局
sendmessage.xml
<TableLayout//表格布局
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"//水平居中
android:layout_marginLeft="15dp"
android:layout_marginTop="40dp"
android:layout_marginRight="15dp">
<TableRow//表格行
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:textSize="20sp"
android:text="收件人:" />
<EditText
android:id="@+id/tel"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:background="#ffffffff"
android:layout_marginLeft="10dp"
android:textSize="20sp"
android:textColor="#ff333333"
android:ems="10"/>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:textSize="20sp"
android:text="内容:" />
<EditText
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:background="#ffffffff"
android:layout_marginLeft="10dp"
android:textSize="20sp"
android:textColor="#ff333333"
android:ems="10"/>
</TableRow>
<Button
android:id="@+id/send"
android:layout_marginTop="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="发送"
android:textSize="20sp"/>
</TableLayout>
运行效果:
下面是实现页面跳转功能:
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);//保存Activity的状态
setContentView(R.layout.activity_main);
//view层的控件和业务层的控件,靠id关联映射,
//给btn赋值,即设置布局文件中的Button按钮id进行关联
Button btn=(Button)findViewById(R.id.btn_mes);
//给btn绑定监听事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,sendmessage.class);
startActivity(intent);
}
});
}
在这里要新建一个跟xml同名的文件
此时点击“信息”按钮就可以成功跳转到该页面
NO!!NO!!NO!!此时还不能成功跳转,忘记一件重要的事:
每创建一个新的页面,都不要忘记注册!!!!!
AndroidManifest.xml
<activity
android:name="sendmessage"
android:label="@string/app_name" >
</activity>
跟文件中原有的activity标签并列
此时才可以成功跳转。
下面的思路及代码参照学姐博客 http://429899791.iteye.com/blog/2206382
接下来绑定button的监听方法
android:onClick="send"
最后是发送短信功能的实现
sendmessage.java
public class sendmessage extends Activity {
private EditText tel=null;
private EditText content=null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sendmessage);
this.tel=(EditText)super.findViewById(R.id.tel);
this.content=(EditText)super.findViewById(R.id.content);
}
public void send(View view){
String telMsg=sendmessage.this.tel.getText().toString();
String contentMsg=sendmessage.this.content.getText().toString();
Uri uri=Uri.parse("smsto:"+telMsg);//接收人手机
Intent it=new Intent();
it.setAction(Intent.ACTION_SENDTO);//指定action,我要发短信
it.putExtra("sms_body", contentMsg);//设置信息内容
it.setType("vnd.android-dir/mms-sms") ;//设置MIME类型
it.setData(uri);//设置数据,要去的地方
sendmessage.this.startActivity(it);
}
}
这里又忘记了一件重要的事,添加权限
AndroidManifest.xml
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.SEND" />
这样才可以发短信
运行效果:
成功!!!嘻嘻嘻
9.实现发邮件功能
以下代码参照学姐博客 http://429899791.iteye.com/blog/2206569
邮件监听为:android:onClick="sendmail"
MainActivity.java
public void sendmail(View view){
Intent emailIntent=new Intent(Intent.ACTION_SEND);
emailIntent.setType("plain/text");//设置类型
String address[]=new String[]{
"2905263224@qq.com"
};//邮件地址
String subject="我要交作业";//邮件主题
String content="第一次数据库作业";//邮件内容
emailIntent.putExtra(Intent.EXTRA_EMAIL, address);//邮件地址
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, content);
startActivity(emailIntent);
}
实现效果:
成功跳转到发送邮件界面,但是手机本身的邮件好像有问题,所以不能给学姐发送邮件了。
10.手残关闭了eclipse左侧窗口怎么办
11.通讯录
11.1获取手机通讯录信息
- 大小: 50.1 KB
- 大小: 45.4 KB
- 大小: 42.7 KB
- 大小: 44.5 KB
- 大小: 76.7 KB
- 大小: 182.1 KB
- 大小: 8.6 KB
- 大小: 16.8 KB
- 大小: 10.8 KB
- 大小: 40.9 KB
- 大小: 19.5 KB
- 大小: 40.6 KB
- 大小: 40.6 KB
- 大小: 18.9 KB
- 大小: 16.7 KB
分享到:
相关推荐
【自动拨号机控制器的设计与仿真】 自动拨号机控制器是一种能够自动连续拨出预设电话号码的设备,尤其在数字电子技术课程设计中被作为一项实践任务。它要求学生运用数字逻辑器件,如译码器、数据选择器和逻辑门,来...
本文将深入探讨如何使用51单片机实现一个手机拨号模块,以便于通过单片机控制手机进行自动拨号。这个应用实例对于理解单片机与外部设备的交互以及在物联网(IoT)场景中的应用非常有价值。 首先,我们要了解51...
1. **电话拨号技术的历史**:从早期的旋转盘式拨号器到后来的按键式电话,再到现在的智能手机,拨号方式经历了巨大变化。旋转盘式拨号器的每个孔对应一个数字,拨号时产生的机械运动触发电磁信号,这些信号的频率与...
通过上述分析可知,本程序主要利用Swing提供的组件及事件处理机制实现了基本的手机拨号功能。虽然功能简单,但涵盖了Swing组件的基本使用方法以及事件处理的基础流程,对于初学者来说是一个很好的学习案例。
【基于Linux下智能手机的制作与设计】 随着信息技术的迅速进步,计算机技术和互联网的广泛应用,我们已经进入了后PC时代,这是一个由个人数字助手、手持设备和信息家电等组成的多元化电子世界。在这个时代,32位...
防盗报警器的电路设计则更为复杂,它包括红外探测器、手机号码确认电路和拨号电路。红外探测器在家中无人时进入守候状态,一旦检测到入侵者,会触发继电器J1,从而接通工作电源。通过电容C1的充放电,模拟人手按下...
能够自动连续拨出本人手机号码,用一个数码管显示位数,另一个显示号码。 理论设计及仿真: 1.用集成计数器及门电路设计电路方案; 2.用集成计数器、译码器及门电路设计电路方案; 3.用集成计数器、数据选择器及...
这些芯片内置了ADC(模拟数字转换器)、DMA(直接存储器访问)、GPIO(通用输入输出)、USART(通用同步/异步收发传输器)等丰富的外设,为构建手机功能提供了硬件基础。 打电话功能的实现可能依赖于STM32与GSM/...
在电子工程领域,进行硬件设计和验证时,虚拟仿真工具如Protues被广泛使用,它可以帮助工程师在实际硬件制作之前预览和测试设计的功能。本实验主题“基于Protues仿真-1602LCD显示电话拨号键盘按键实验”旨在通过虚拟...
- **和弦铃声 (Chord Music Ringtone)**: 一种利用和弦音乐来制作的铃声,相比于单音铃声更富有层次感。 - **对讲机 (Walkie-Talkie)**: 一种双向无线通信设备,主要用于短距离内的语音通讯。 - **全球定位系统 (GPS...
- 单键拨号。 - 号码分组。 - **增值服务**: - 业务卡片的管理。 - 书签管理。 - 服务信箱:自动存储服务信息,如铃声、图片等。 - GPRS上网设置、WAP服务设置。 - 多模式浏览器支持。 - OTA待机图片、铃声...
自动拨号器设计旨在使用单片机和 Proteus 软件仿真,实现自动拨号器的设计和开发。该设计要求能自动通过电话线拨打你本人的手机或指定的固定电话,并具有气体泄漏、防盗等报警功能。 七、电子钟设计 电子钟设计...
8. **测试程序**:用于验证模拟手机功能是否正常,可能包括拨号测试、接收短信测试等。 通过学习和分析这些代码,开发者可以了解如何利用AVR微控制器构建简单的移动通信设备。这涉及到的知识点包括: 1. **AVR微...
2. **设置拨号连接方式**:进入“硬件管理器”->“调制解调器”,找到手机的GPRS Modem,在其“属性”->“高级”中输入`AT+CGDCONT=1,"IP","cmwap"`作为额外的初始化命令。 3. **使用PhoneSuite3.0软件**:为了更...
这个压缩包中的“手机”音效可能包括接听电话、拨号、短信提示音、闹钟、关机、开机、充电等常见的手机声音。这些音效可以在Scratch项目中作为不同事件触发时播放,例如当角色(如游戏中的角色)完成特定动作时,...
此外,还提到了定制系统,满足用户个性化需求,以及信息检索系统、记数器、网上调查统计等功能。 新闻类别管理和产品发布系统允许后台实时更新内容,便于管理新闻和产品信息。视频播放功能、内置聊天室或外链聊天室...
在本资源包中,"手机拨号"可能包含了以下内容: 1. 源程序:这是用C或汇编语言编写的51单片机程序,实现了DTMF编码和拨号逻辑。 2. Proteus仿真文件:包含电路图和预设好的51单片机模型,以及可能的其他组件模型,如...