Android-发送短信的源码

Android发送短信其实很简单,关键的类是SmsManager(注意要使用telephone那个包下的),具体源码看下面:

package com.henii.android;

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;

//!!!可以通过启动两个模拟器进行测试,发送短信时就拨另一个的端口号(如5554等)就行了!!!
//在AndroidManifest.xml中要添加权限:<uses-permission android:name="android.permission.SEND_SMS"/>
public class SMSActivity extends Activity {
private EditText mobileText;
private EditText contText;
private Button sendBtn;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //根据id找到控件并实例化它
        mobileText = (EditText)findViewById(R.id.MobileEditText);
        contText = (EditText)findViewById(R.id.ContEditText);
        sendBtn = (Button)findViewById(R.id.SendButton);
       
        //发送按钮的处理事件
        sendBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String content = contText.getText().toString();

String mobile = mobileText.getText().toString();

//获得发送短信的管理器,使用的是android.telephony.SmsManager
SmsManager smsManager = SmsManager.getDefault();

//如果短信内容过长则分段发送
if(content.length() > 70){
//使用短信管理器进行短信内容的分段,返回分成的段
ArrayList<String> contents = smsManager.divideMessage(content);
for(String msg : contents){
//使用短信管理器发送短信内容
//参数一为短信接收者
//参数三为短信内容
//其他可以设为null
smsManager.sendTextMessage(mobile, null, msg, null, null);
}
//否则一次过发送
}else{
smsManager.sendTextMessage(mobile, null, content, null, null);
}

//吐司,用来显示发送成功的提示
Toast.makeText(SMSActivity.this, R.string.sucTxt, Toast.LENGTH_SHORT).show();
}
});
       
      //!!!可以通过启动两个模拟器进行测试,发送短信时就拨另一个的端口号(如5554等)就行了!!!
    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这是一个自己开发的Android 直接发送短信方法附上代码,Android短信功能,包括了对内容合法性的验证,发送完成弹出提示。自己开发的直接发送短信的方法:   private void sendSMS(String telNo,String smsStr,View v){    PendingIntent pi=    PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);    SmsManager sms=SmsManager.getDefault();    sms.sendTextMessage(telNo, null, smsStr, pi, null);    //短信发送成功给予提示    Toast.makeText(    Sample_11_1.this, //上下文    "恭喜你,短信发送成功!", //提示内容    5000 //信息显示时间    ).show();    v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态   }   对手机号码和短信内容的验证部分:   //获取输入的电话号码   EditText etTel=(EditText)findViewById(R.id.EditText02);   String telStr=etTel.getText().toString();   //获取输入的短信内容   EditText etSms=(EditText)findViewById(R.id.EditText01);   String smsStr=etSms.getText().toString();   //判断号码字符串是否合法   if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信    v.setEnabled(false);//短信发送完成前将发送按钮设置为不可用    sendSMS(telStr,smsStr,v);   }   else{//不合法则提示    Toast.makeText(    Sample_11_1.this, //上下文    "电话号码不符合格式!!!", //提示内容    5000//信息显示时间    ).show();   }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值