手把手教你如何在安卓平台上实现打电话发短信的功能
2012-11-14 14:02
651 查看
首发地址
http://www.eoeandroid.com/thread-228079-1-1.html
1 案例目的
[align=left]本案例通过一个简单通讯工具来巩固android的activity、LinearLayout布局、基本控件Button、打电话发短信以及应用程序交互通信Intent的使用。本案例重点讲解android中事件处理原理以及该原理在项目中的应用。[/align]
[align=left]2 案例介绍 [/align]
[align=left]零距通这个通讯工具可以实现发短信打电话的功能,无论在天涯海角,只需使用零距通,让你跟你的朋友,家人从此变成零距离无障碍沟通,零距通,让你的生活从此零距离。[/align]
[align=left]3 案例分析 [/align]
[align=left]本项目采用android2.3.3开发。由于该项目主要实现打电话发短信的功能,用Intent激活程序---电话与短信本篇中使用的 Intent 打电话程序中,Intent 的行为是 ACTION_DIAL,同时在 Intent 中传递被呼叫人的电话号码。拨打电话的关键有两个方面,首先,要在 AndroidManifest 中添加 uses-permission,并声明android:name="android.permission.CALL_PHONE" 权限。由於打电话是属於手机的底层服务,与用户隐私及通话费用等话题息息相关,困此,程序必须取得权限。其次,通过自定义 Intent 对象,带入“ACTION_CALL” 这个关键(Action),以及通过Uri.parse()的方法将用户输入电话号码(Data)带入,最后以 startActivity()方法,即可完成。要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容[/align]
4 案例设计
[align=left]单击“发短信”,“打电话”按钮时的事件处理流程如下:[/align]
[align=left] (1)创建“发短信”,“打电话”按钮事件源。[/align]
[align=left] (2)事件源向点击事件监听器类注册。[/align]
[align=left] (3)当点击事件源“发短信”,“打电话”按钮时触发事件并调用事件监听器类中的onClick(View)方法处理业务逻辑。 [/align]
[align=left]5 业务逻辑设计 [/align]
先来效果图:
6 案例实现:
[align=left]案例实现的部分重要代码如下:[/align]
[align=left]1.首页界面[/align]
2.主界面activity
3.发短信界面activity
4.打电话界面Activity
源码下载:SmsAndPhone.zip
[align=left] [/align]
http://www.eoeandroid.com/thread-228079-1-1.html
1 案例目的
[align=left]本案例通过一个简单通讯工具来巩固android的activity、LinearLayout布局、基本控件Button、打电话发短信以及应用程序交互通信Intent的使用。本案例重点讲解android中事件处理原理以及该原理在项目中的应用。[/align]
[align=left]2 案例介绍 [/align]
[align=left]零距通这个通讯工具可以实现发短信打电话的功能,无论在天涯海角,只需使用零距通,让你跟你的朋友,家人从此变成零距离无障碍沟通,零距通,让你的生活从此零距离。[/align]
[align=left]3 案例分析 [/align]
[align=left]本项目采用android2.3.3开发。由于该项目主要实现打电话发短信的功能,用Intent激活程序---电话与短信本篇中使用的 Intent 打电话程序中,Intent 的行为是 ACTION_DIAL,同时在 Intent 中传递被呼叫人的电话号码。拨打电话的关键有两个方面,首先,要在 AndroidManifest 中添加 uses-permission,并声明android:name="android.permission.CALL_PHONE" 权限。由於打电话是属於手机的底层服务,与用户隐私及通话费用等话题息息相关,困此,程序必须取得权限。其次,通过自定义 Intent 对象,带入“ACTION_CALL” 这个关键(Action),以及通过Uri.parse()的方法将用户输入电话号码(Data)带入,最后以 startActivity()方法,即可完成。要实现发短信的功能,必须要用到android系统中发短信的权限,即在AndoridManifest.xml中添加如下内容[/align]
<uses-permissionandroid:name=”android.permission.SEND_SMS”/>
4 案例设计
[align=left]单击“发短信”,“打电话”按钮时的事件处理流程如下:[/align]
[align=left] (1)创建“发短信”,“打电话”按钮事件源。[/align]
[align=left] (2)事件源向点击事件监听器类注册。[/align]
[align=left] (3)当点击事件源“发短信”,“打电话”按钮时触发事件并调用事件监听器类中的onClick(View)方法处理业务逻辑。 [/align]
[align=left]5 业务逻辑设计 [/align]
if(myeditText.getText().length()>0{ Intent myIntent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+myeditText.getText().toString())); Phone.this.startActivity(myIntent); } String mobile=myEditText.getText().toString(); String content=EditText2.getText().toString(); SmsManager sms=SmsManager.getDefault(); PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this,0, new Intent(), 0);
先来效果图:
6 案例实现:
[align=left]案例实现的部分重要代码如下:[/align]
[align=left]1.首页界面[/align]
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="165dp" android:layout_marginLeft="23dp" android:background="@drawable/button" android:text="打电话" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignParentRight="true" android:background="@drawable/button" android:text="发短信"
2.主界面activity
public class SmsAndPhoneActivity extends Activity { /** Called when the activity is first created. */ Button button1,button2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //根据ID查找相应控件 button1=(Button) findViewById(R.id.button1); button2=(Button) findViewById(R.id.button2); //按钮监听事件 button1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //跳转到打电话页面 Intent intent = new Intent(SmsAndPhoneActivity.this, Phone.class); startActivity(intent); } }); button2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //跳转到发短信页面 Intent intent1=new Intent(SmsAndPhoneActivity.this, SmsActivity.class); startActivity(intent1); } }); } }
3.发短信界面activity
public class SmsActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sms); Button butsend=(Button) findViewById(R.id.butsend); final EditText myEditText=(EditText)findViewById(R.id.mobile); final EditText EditText2=(EditText)findViewById(R.id.content); butsend.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String mobile=myEditText.getText().toString(); String content=EditText2.getText().toString(); SmsManager sms=SmsManager.getDefault(); PendingIntent sentintent =PendingIntent.getBroadcast(SmsActivity.this, 0, new Intent(), 0); try { if(content.length()>70) { List<String> msgs=sms.divideMessage(content); for(String msg:msgs) { sms.sendTextMessage(mobile, null, msg, sentintent, null); } } else { sms.sendTextMessage(mobile, null, content, sentintent, null); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } Toast.makeText(SmsActivity.this, "短信发送成功", 1000).show(); } });
4.打电话界面Activity
public class Phone extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.phone); final EditText myeditText=(EditText) findViewById(R.id.myedittext); Button butphone=(Button) findViewById(R.id.butphone); butphone.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if(myeditText.getText().length()>0) { Intent myIntent=new Intent(Intent.ACTION_CALL,Uri.parse ("tel:"+myeditText.getText().toString())); Phone.this.startActivity(myIntent); } } }); } }
源码下载:SmsAndPhone.zip
[align=left] [/align]
相关文章推荐
- Android安卓带头像电话本实现打电话、发短信功能( ab54 源码)
- 【学习ios之路:UI系列】实现打电话,发短信,发邮件功能
- .Net语言 APP开发平台——Smobiler学习日志:如何在手机上实现散落点图表功能
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现Timer计时功能
- 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)
- 安卓平台基于SIP协议实现注册,聊天功能
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现手机上的资源上传功能
- unity 如何实现安卓Android的toast功能
- java通过SMS短信平台实现发短信的功能
- 安卓平台如何实现微博绑定?
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现按钮组功能
- 手把手教你 如何实现本地打印机接入云打印机平台
- Android 添加联系人发短信以及打电话功能实现
- 如何实现LBS轨迹回放功能?含多平台实现代码
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现地图定位时的地点微调功能
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现手机上的资源上传功能
- 手机Web APP如何实现分享多平台功能
- android实现打电话 发短信功能
- .Net语言 APP开发平台——Smobiler学习日志:如何快速实现手机上的资源上传功能