当前位置:操作系统 > 安卓/Android >>

Android发送短信

要使用手机短信服务,在AndroidManifest.xml中必须添加短信服务权限
AndroidManifest.xml
<uses-permission android:name="android.permission.SEND_SMS"/><!--添加权限-->
 
package com.sms;
import java.util.List;
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 MainActivity extends Activity implements
  android.view.View.OnClickListener {
 /** Called when the activity is first created. */
 private EditText contact;
 private EditText smsContent;
 private Button commit;
 private String strNo;
 private String strSms;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  initView();
  onClickListener();
 }
 public void initView() {
  contact = (EditText) findViewById(R.id.contact);
  smsContent = (EditText) findViewById(R.id.smsContent);
  commit = (Button) findViewById(R.id.commit);
 }
 public void onClickListener() {
  commit.setOnClickListener(this);
 }
 @Override
 public void onClick(View v) {
  switch (v.getId()) {
  case R.id.commit:
   strNo = contact.getText().toString();
   strSms = smsContent.getText().toString();
   // TODO Auto-generated method stub
   /*
    * 在 Android 2.0 以前 应该使用 android.telephony.gsm.SmsManager 之后应该用
    * android.telephony.SmsManager;
    */
   // 获取系统默认的短信管理器
   SmsManager smsManager = SmsManager.getDefault();
   PendingIntent sentIntent = PendingIntent.getBroadcast(
     MainActivity.this, 0, new Intent(), 0);
   // 如果字数超过70,需拆分成多条短信发送
   // 按照每条短信最大字数来拆分短信
   if (strSms.length() > 70) {
    List<String> msgs = smsManager.divideMessage(strSms);
    for (String msg : msgs) {
     /*
      * 发送短信
      *
      * smsManager.sendTextMessage(destinationAddress, scAddress,
      * text, sentIntent, deliveryIntent)
      *
      * -- destinationAddress:目标电话号码
      *
      * -- scAddress:短信中心号码,测试可以不填
      *
      * -- text: 短信内容
      *
      * -- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 -->
      * 后续处理 即,这个意图包装了短信发送状态的信息
      *
      * -- deliveryIntent: 发送 -->中国移动 --> 中国移动发送成功 -->
      * 返回对方是否收到这个信息 --> 后续处理
      * 即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。
      */
     smsManager.sendTextMessage(strNo, null, msg, sentIntent,
       null);
    }
   } else {
    smsManager.sendTextMessage(strNo, null, strSms, sentIntent,
      null);
   }
   Toast.makeText(MainActivity.this, "短信发送完成", Toast.LENGTH_LONG)
     .show();
   break;
  }
 }
}
 
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,