Android入门:利用SmsManager发送短信

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


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


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


二、开发短信发送器


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

界面介绍:

Android入门:利用SmsManager发送短信_第1张图片

Android入门:利用SmsManager发送短信_第2张图片

核心代码:

(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中添加:


<uses-permission android:name="android.permission.SEND_SMS"/>

MainActivity.java

package org.xiazdong;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button btn;
	private EditText phoneEt,contextEt;
	private OnClickListener listener = new OnClickListener(){
		@Override
		public void onClick(View v) {
			String phone = phoneEt.getText().toString();
			String context = contextEt.getText().toString();
			SmsManager manager = SmsManager.getDefault();
			ArrayList<String> list = manager.divideMessage(context);  //因为一条短信有字数限制,因此要将长短信拆分
			for(String text:list){
				manager.sendTextMessage(phone, null, text, null, null);
			}
			Toast.makeText(getApplicationContext(), "发送完毕", Toast.LENGTH_SHORT).show();
		}
    };
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn = (Button)this.findViewById(R.id.btn);
        phoneEt = (EditText)this.findViewById(R.id.phoneNumberEt);
        contextEt = (EditText)this.findViewById(R.id.contextEt);
        btn.setOnClickListener(listener);
    }
}




你可能感兴趣的:(android)