4.1电话拨号
4.1.1需求分析效果图
4.1.2设计思路及步骤
1、先画布置,在res文件夹的layout文件夹的main.xml文件夹中。首先分析出此界面只需要linear线性布局就可以了。
2、需要三个控件:一个TextView(显示请输入手机号标签)、一个EditText(用于接受用户输入的手机号)、一个Button(用于点击时拨打电话)
3、核心四路:当用户点击“呼叫此号码”按钮时,即可打出电话。显然需要在Button上注册一个监听器。而打电话需要获取EditText中输入的手机号,所以肯定需要给EditText的唯一的id号为numET。Button标签上可直接指定android:onClick属性值为”onClick”。
4、接着就可以直接在自定义的Activity类MainActivity中写代码了,注意MainActivity类必须实现一个方法publicvoidonClick(View)方法(因main.xml的Button标签中指定了onClick=”onClick”了呢)。打电话需要一个Intent意图对象,设置intent的action与data(data中只接受Uri,需要用tel:协议,即tel:电话号码)后,就可以startActvity(intent)了,即打电话了。
4.1.3电话拨号示例代码
packagecom.test.phone;
importandroid.app.Activity;
importandroid.content.Intent;
importandroid.net.Uri;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassMainActivity3extendsActivity{
privateButtoncallBT;
privateEditTextphoneET;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//1.获取callphone的按钮对象,可以通过findVeiwById
//若Button没有指定onClick,则需要获取button对象,指定好onClickListener监听器
callBT=(Button)findViewById(R.id.callBT);
//2.获取输入的数字EditText对象
phoneET=(EditText)findViewById(R.id.numET);
//3.本应该在是callBT即按钮上注册onClickLintener监听器的,
//但自定义的Activity可以现时实现此监听接口,所以只需要注册自己即可
//AndroidMainfest.xml文件中,支持可以直接在Button中配置好onClick=doXXX即可。
}
publicvoiddoCallPhone(Viewv){
/4.获取输入的具体数字是多少
StringsourceNum=phoneET.getText().toString();
if(sourceNum.length()<1){
Toast.makeText(getApplicationContext(),"你没脑子啊,没输号码直接拨打电话",Toast.LENGTH_SHORT).show();
return;//注册Toast.markText(..)方法,要有.show()。不可忘记哦。
}
//拨打电话其实是一个想法意图,需要先构造一个意图对象,在意图对象中指定好要做的动作及需要的数据,
//然后开启一个activity就可以了。
Intentintent=newIntent();//构造一个意图对象
intent.setAction(Intent.ACTION_CALL);//指定意图将要做的动作
intent.setData(Uri.parse("tel:"+sourceNum));//指定意图要动作时的需要的数据。
startActivity(intent);//开启一个Activity
}
}
5、需要注意打电话,必须在清单文件AndroidManifest.xml文件中配置声明应用程序需要打电话的许可。
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
4.2查看程序错误信息
ŸAndroid程序中如果出错,错误不会显示在Console中,而是显示在LogCat界面下。可以从window–showview中打开
Ÿ日志信息分为5个级别:verbose>debug>info>warn>error高级的包含低级的
Ÿ可以创建过滤器对日志进行过滤显示,点击绿色加号,可以按照tag、pid、level进行筛选
4.3将程序安装到真实手机
Ÿ在电脑上安装手机驱动
有些手机自带驱动,有些没有,可以从官网下载。或者可以使用“豌豆荚”、“91助手”等软件自动安装。
Ÿ在手机设置中打开USB调试,将手机用USB数据线连接到电脑
Ÿ检查Eclipse的设备管理器中是否显示出新设备
如果未能显示出设备,检查驱动安装是否正常,USB调试是否打开。在“我的电脑”-“设备管理器”-USB硬件检查是否未安装驱动。
ŸEclipse上安装程序到手机
Eclipse上右键点击工程–Runas–AndroidApplication–选择手机的那个devices即可自动安装运行。
Ÿ手动打包安装
右键点击工程–Export–ExportAndroidApplication–选择或创建密钥对程序签名并打包生成apk文件
将apk文件放到手机的SD卡中,通过手机文件浏览器执行安装
4.4短信发送
4.4.1需求分析效果图
4.4.2设计思路及步骤
1、先画布置,在res文件夹的layout文件夹的main.xml文件夹中。首先分析出此界面只需要linear线性布局就可以了。
2、需要五个控件:二个TextView(显示请输入手机号码与短信内容标签)、两个EditText(用于接受用户输入的手机号与短信内容)、一个Button(用于点击时发送短信)
3、核心四路:当用户点击“发送短信”按钮时,即可发送出短信。显然需要在Button上注册一个监听器。而发送短信需要获取EditText中输入的手机号与短信内容,所以肯定需要给这两个EditText分别的唯一的id号为telNumET、contentET。Button标签上可直接指定android:onClick属性值为”doSendMessage”。
4、接着就可以直接在自定义的Activity类MainActivity中写代码了,注意MainActivity类必须实现一个方法publicvoiddoSendMessage(View)方法(因main.xml的Button标签中指定了onClick=”doSendMessage”了呢)。发送短信,首先需要SmsManager对象,此对象的获取可以通过SmsManager.getDefault()方法获取SmsManager的对象,接着根据获取出来的内容content,用smsManager.divideMessage(content)分割多条信息的List<String>messages对象。最后循环遍历messages,采用smsManager.sendTextMessage(....)将短信发出去。
4.4.3短信发送示例代码:
packagecom.test.sendmessage;
importjava.util.List;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.telephony.SmsManager;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.Toast;
publicclassMainActivityextendsActivity{
privateEditTexttelNumET;
privateEditTextcontentET;
privateSmsManagermanager;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取手机号控件
telNumET=(EditText)findViewById(R.id.telNumET);
//获取短信内容控件
contentET=(EditText)findViewById(R.id.contentET);
//发送短信,必须要用SmsManager对象的相应的方法。如sendTextMessage(....);
manager=SmsManager.getDefault();
}
publicvoiddoSendMessage(Viewview){
try{
StringtelNum=telNumET.getText().toString();//获取要发送到哪个手机号上
Stringcontent=contentET.getText().toString();//获取要发送的内容
//要根据默认的wcdma或cdma的网络制式,选择截取多少字符作为一个短信。
List<String>messages=manager.divideMessage(content);//发送内容的短信集合,若信息很长时会被截取成多条短信发送
for(Stringmessage:messages){
//第一个参数,要发送到的手机号。第二参数,发送者手机信息服务提供中心地址,null为采用根据手机网络制式选择。
//第三个参数,要发送的内容。第四、五参数与发送广播意图相关,可直接指定为null
manager.sendTextMessage(telNum,null,message,null,null);
}
contentET.setText("");
Toast.makeText(getApplicationContext(),"发送成功",Toast.LENGTH_SHORT).show();
}catch(Exceptione){
e.printStackTrace();
//当前一Activity也是一个Context对象的
Toast.makeText(this,"发送失败",Toast.LENGTH_SHORT).show();
}
}
}
6、需要注意发短信,必须在清单文件AndroidManifest.xml文件中配置声明应用程序需要打电话的许可。
<uses-permissionandroid:name="android.permission.SEND_SMS"/>
分享到:
相关推荐
6.14 判断发送短信后的状态 6.15 后台服务送出广播信息 6.16 开机程序设计 6.17 双向短信常驻服务 6.18 测量电池温度 6.19 电池电量显示Widget小工具 6.20 取出通讯录数据及多组电话号码 6.21 电子Sensor精确罗盘 ...
6.14 判断发送短信后的状态 6.15 后台服务送出广播信息 6.16 开机程序设计 6.17 双向短信常驻服务 6.18 测量电池温度 6.19 电池电量显示Widget小工具 6.20 取出通讯录数据及多组电话号码 6.21 电子Sensor精确罗盘 ...
6.14 判断发送短信后的状态 6.15 后台服务送出广播信息 6.16 开机程序设计 6.17 双向短信常驻服务 6.18 测量电池温度 6.19 电池电量显示Widget小工具 6.20 取出通讯录数据及多组电话号码 6.21 电子Sensor精确罗盘 ...
6.14 判断发送短信后的状态 6.15 后台服务送出广播信息 6.16 开机程序设计 6.17 双向短信常驻服务 6.18 测量电池温度 6.19 电池电量显示Widget小工具 6.20 取出通讯录数据及多组电话号码 6.21 电子Sensor精确罗盘 ...
----→单击×时无法删除联系人的错误修复→我们修复了自动完成功能中缺少联系人的错误→选择并右键单击页面中的电话号码以拨打电话或向其发送短信。 →由于愚蠢的代码使开发人员忘记了,因此Google加号的错误修复。 ...
:通过电话,短信(SMS),WhatsApp,Telegram,InTouchApp,Messenger或任何其他与您的电话联系人无关的应用程序,可以轻松地与人进行通信。 WhatsApp提示:如果您从客户那里获得有关WhatsApp的查询,则这些查询将...
此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...