首页 > 代码库 > Android实现电话拨号器和短信发送器

Android实现电话拨号器和短信发送器

电话拨号器和短信发送器是Android初学者很好的练习项目,今天就找了两个写得很不错的例子学习下

电话拨号器

实现原理:用户输入电话号码,当点击拨打的时候,由监听对象捕获,监听对象通过文本控件获取到用户输入的电话号码,由于系统已经实现了电话拨号功能,所以我们只需要调用这个功能就可以了。

步骤:

1.界面布局

2.编写Activity

3.使用意图过滤器激活电话拨号功能

4.添加电话服务权限(用手机的电话服务,要在清单文件AndroidManifest.xml中添加电话服务权限)

如图所示这三个控件是垂直摆放的,所以要使用线性布局来搁置显示控件

效果图:

界面布局:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:orientation="vertical" 4     android:layout_width="fill_parent" 5     android:layout_height="fill_parent" 6     > 7     <!--提示信息--> 8     <TextView   9     android:layout_width="fill_parent" 10     android:layout_height="wrap_content" 11     android:text="@string/Mobile"12     />13      <!--文本框按钮-->14     <EditText15     android:layout_width="fill_parent" 16     android:layout_height="wrap_content"17     android:id="@+id/moblie"18     />19     <!--拨号按钮 -->20     <Button21     android:layout_width="wrap_content" 22     android:layout_height="wrap_content"23     android:text="@string/button"24     android:id="@+id/button"25     />26 </LinearLayout>

 Activity:

 1 package cn.test.phone; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.net.Uri; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.EditText;10 11 public class MainActivity extends Activity {12     @Override13     public void onCreate(Bundle savedInstanceState) {14         super.onCreate(savedInstanceState);15         setContentView(R.layout.main);16         //根据控件的id查找到按钮控件17         Button button =(Button)this.findViewById(R.id.button);18         button.setOnClickListener(new ButtonClickLister());   //点击事件的处理对象19     }20     //监听对象实现拨打功能21     private class ButtonClickLister implements View.OnClickListener{22         public void onClick(View v){23             EditText mobileText=(EditText)findViewById(R.id.moblie);24             String moblie=mobileText.getText().toString(); //获取到用户输入的时间25             Intent intent =new Intent();26             intent.setAction("android.intent.action.CALL");27             intent.setData(Uri.parse("tel:"+moblie));28             //根据意图过滤器参数激活电话拨号功能29             startActivity(intent);30         }31     }32 }

添加电话服务权限:

 

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3       package="cn.itcast.action" 4       android:versionCode="1" 5       android:versionName="1.0"> 6       略.... 7     <uses-sdk android:minSdkVersion=“6" /> 8     <!-- 电话服务权限 --> 9     <uses-permission android:name="android.permission.CALL_PHONE"/>10 </manifest>

短信发送器

 短信发送器和电话拨号器步骤差不多,需要注意的是当获取到短信内容时,如果短信内容非常多需要对短信内容进行拆分,拆分后存到集合里,对短信内容多条发送

效果图:

界面布局:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3     android:orientation="vertical" 4     android:layout_width="fill_parent" 5     android:layout_height="fill_parent" 6     > 7     <!--显示控件--> 8     <TextView   9     android:layout_width="fill_parent" 10     android:layout_height="wrap_content" 11     android:text="@string/moblie"12     />13     <!--文本框按钮-->14     <EditText15     android:layout_width="fill_parent" 16     android:layout_height="wrap_content"17     android:id="@+id/moblie"18     />19     <TextView  20     android:layout_width="fill_parent" 21     android:layout_height="wrap_content" 22     android:text="@string/content"23     />24     <EditText25     android:layout_width="fill_parent" 26     android:layout_height="wrap_content"27     android:minLines="3"28     android:id="@+id/content"29     />30     <Button31     android:layout_width="wrap_content" 32     android:layout_height="wrap_content"33     android:text="@string/button"34     android:id="@+id/button"35     />36 </LinearLayout>

Activity:

 1 package cn.test.sms; 2 import java.util.ArrayList; 3  4 import android.app.Activity; 5 import android.os.Bundle; 6 import android.telephony.SmsManager; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.EditText;10 import android.widget.Toast;11 12 public class MainActivity extends Activity {13     @Override14     public void onCreate(Bundle savedInstanceState) {15         super.onCreate(savedInstanceState);16         setContentView(R.layout.main);17         Button button =(Button)this.findViewById(R.id.button);18         button.setOnClickListener(new ButtonClickLister());   //点击事件的处理对象19     }20     //监听对象实现拨打功能21     private  class ButtonClickLister implements View.OnClickListener{22         public void onClick(View v){23             EditText moblieText=(EditText)findViewById(R.id.moblie);24             EditText contentText=(EditText)findViewById(R.id.content);25             String moble =moblieText.getText().toString();//获取电话号26             String content =contentText.getText().toString();//获取短信内容27             SmsManager smsManager=SmsManager.getDefault();//获得短信管理器28             ArrayList<String> texts=smsManager.divideMessage(content);//对短信内容进行拆分29             for(String text:texts){30                 smsManager.sendTextMessage(moble, null, text, null, null);     //短信发送31             }32                 //采用吐西方式提示用户发送成功33             Toast.makeText(getApplicationContext(), R.string.success, 1).show();34         }35     }36 }

添加短信服务权限:

 1 <?xml version="1.0" encoding="utf-8"?> 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 3       package="cn.itcast.action" 4       android:versionCode="1" 5       android:versionName="1.0"> 6       略.... 7     <uses-sdk android:minSdkVersion="8" /> 8     <!-- 短信服务权限 --> 9     <uses-permission android:name="android.permission.SEND_SMS" />10 </manifest>

原文转自:http://blog.csdn.net/furongkang/article/details/6802074

 

Android实现电话拨号器和短信发送器