Android入门:利用SmsManager发送短信

来源:互联网 发布:兆讯恒达微电子 知乎 编辑:程序博客网 时间:2024/06/14 22:05

我们可以通过Intent调用发送短信的服务,但是也可以通过SmsManager发送;


一、为何需要自己开发短信发送器


虽然在Android系统中已经存在发送短信的应用,但是如果我们在开发其他应用时需要集成发送短信功能,则很方便。


二、开发短信发送器


应用目标:将应用安装到5554模拟器上,并发送给5556的模拟器;

界面介绍:



核心代码:

(1)SmsManager manager = SmsManager.getDefault();   //获得默认的消息管理器

(2)ArrayList<String> list = manager.divideMessage(String txt);  //拆分长短信

(3)manager.sendTextMessage(String phone,null,String content,null,null);  //发送短信


在AndroidManifest.xml中添加:


[html] view plaincopy
  1. <uses-permission android:name="android.permission.SEND_SMS"/>  

MainActivity.java

[java] view plaincopy
  1. package org.xiazdong;  
  2. import java.util.ArrayList;  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.telephony.SmsManager;  
  6. import android.view.View;  
  7. import android.view.View.OnClickListener;  
  8. import android.widget.Button;  
  9. import android.widget.EditText;  
  10. import android.widget.Toast;  
  11.   
  12. public class MainActivity extends Activity {  
  13.     private Button btn;  
  14.     private EditText phoneEt,contextEt;  
  15.     private OnClickListener listener = new OnClickListener(){  
  16.         @Override  
  17.         public void onClick(View v) {  
  18.             String phone = phoneEt.getText().toString();  
  19.             String context = contextEt.getText().toString();  
  20.             SmsManager manager = SmsManager.getDefault();  
  21.             ArrayList<String> list = manager.divideMessage(context);  //因为一条短信有字数限制,因此要将长短信拆分  
  22.             for(String text:list){  
  23.                 manager.sendTextMessage(phone, null, text, nullnull);  
  24.             }  
  25.             Toast.makeText(getApplicationContext(), "发送完毕", Toast.LENGTH_SHORT).show();  
  26.         }  
  27.     };  
  28.     @Override  
  29.     public void onCreate(Bundle savedInstanceState) {  
  30.         super.onCreate(savedInstanceState);  
  31.         setContentView(R.layout.main);  
  32.         btn = (Button)this.findViewById(R.id.btn);  
  33.         phoneEt = (EditText)this.findViewById(R.id.phoneNumberEt);  
  34.         contextEt = (EditText)this.findViewById(R.id.contextEt);  
  35.         btn.setOnClickListener(listener);  
  36.     }  
  37. }  
0 0
原创粉丝点击