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

短信发送器

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

效果图:

界面布局:

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

 

转载于:https://www.cnblogs.com/zzsakurazz/p/4042008.html

你可能感兴趣的:(移动开发,java)