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

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

电话拨号器

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

步骤:

1.界面布局

2.编写Activity

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

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

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

效果图:

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

界面布局:

 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     <EditText

15     android:layout_width="fill_parent" 

16     android:layout_height="wrap_content"

17     android:id="@+id/moblie"

18     />

19     <!--拨号按钮 -->

20     <Button

21     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     @Override

13     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>

短信发送器

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

效果图:

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

界面布局:

 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     <EditText

15     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     <EditText

25     android:layout_width="fill_parent" 

26     android:layout_height="wrap_content"

27     android:minLines="3"

28     android:id="@+id/content"

29     />

30     <Button

31     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     @Override

14     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)