发短信

  发短信的程序关键是通过SmsManager对象的sendTextMessage()方法来完成,其中sendTextMessage()方法要传入5个参数,依次是收件人地址(string),发送地址(string),正文(string),发送服务(pendingIntent)与送达服务(pendingIntent),其中收件人地址和正文不可以为空。
  pendingIntent.getBroadcast()方法来定义一个PendingIntent并进行Broadcasting,而后使用SmsManager.getDefault(当处理SMS短信相关的活动,例如发送数据,文字与pdu SMS信息,都需要调用这种静态的方法)所预先构建的SmsManager使用sendTextMessage()方法,将相关数据以参数带入,即可完成发送短信的任务。
  另外你要添加一个发送短信的权限:
<uses-permission android:name="android.permission.SEND_SMS"/>

  你可以启动两个模拟器来测试短信的收发。
  代码如下:
package com.kevin.message;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Main extends Activity {
	private Button btn_send;
	private EditText et_receiver,et_message;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn_send = (Button) findViewById(R.id.btn_send);
        et_message = (EditText) findViewById(R.id.et_message);
        et_receiver = (EditText) findViewById(R.id.et_receiver);
        btn_send.setOnClickListener(new Button.OnClickListener() {			
			@Override
			public void onClick(View v) {
				String receiver = et_receiver.getText().toString();
				String message = et_message.getText().toString();
				// 构建一个SmsManager对象
				SmsManager smsManager = SmsManager.getDefault();
				// 构建PendingIntent对象
				PendingIntent intent = PendingIntent.getBroadcast(Main.this, 0, new Intent(), 0);
				smsManager.sendTextMessage(receiver, null, message, intent, null);
				Toast.makeText(Main.this, "发送成功", Toast.LENGTH_LONG).show();	
				et_receiver.setText("");
				et_message.setText("");				
			}
		});
    }
}

你可能感兴趣的:(android)