安卓简单发送短信小程序.doc_第1页
安卓简单发送短信小程序.doc_第2页
安卓简单发送短信小程序.doc_第3页
安卓简单发送短信小程序.doc_第4页
安卓简单发送短信小程序.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简单安卓发送短信小程序1、 新建安卓项目:2、 生成一个项目之后在SRC文件夹中的包中自动生成的Action中写代码:代码如下:(注释写的很详细,自己看一下吧)package com.sms;import android.app.Activity; /*必需引用PendingIntent类才能使用getBrocast()*/ import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; /*必需引用telephony.gsm.SmsManager类才能使用sendTextMessage()*/import android.telephony.SmsManager;import android.view.View; import android.widget.Button;import android.widget.EditText; import android.widget.Toast;import java.util.regex.Matcher;import java.util.regex.Pattern; public class Send_smsActivity extends Activity /*声明变量一个Button与两个EditText*/ private Button mButton1; private EditText mEditText1; private EditText mEditText2; /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); /*透过findViewById建构子来建构EditText1,EditText2与Button对象*/ mEditText1 = (EditText) (EditText) this.findViewById(R.id.mEditText1); mEditText2 = (EditText) (EditText) this.findViewById(R.id.mEditText2); mButton1 = (Button) (Button) this.findViewById(R.id.mButton1); /*将默认文字加载EditText中*/ mEditText1.setText(请输入电话号码); mEditText2.setText(请输入短信内容!); /*设定onClickListener 让使用者点选EditText时做出反应*/ mEditText1.setOnClickListener(new EditText.OnClickListener() public void onClick(View v) /*点选EditText时清空内文*/ mEditText1.setText(); ); /*设定onClickListener 让使用者点选EditText时做出反应*/ mEditText2.setOnClickListener(new EditText.OnClickListener() public void onClick(View v) /*点选EditText时清空内文*/ mEditText2.setText(); ); /*设定onClickListener 让使用者点选Button时做出反应*/ mButton1.setOnClickListener(new Button.OnClickListener() Override public void onClick(View v) /*由EditText1取得简讯收件人电话*/ String strDestAddress = mEditText1.getText().toString(); /*由EditText2取得简讯文字内容*/ String strMessage = mEditText2.getText().toString(); /*建构一取得default instance的 SmsManager对象 */ SmsManager smsManager = SmsManager.getDefault(); / TODO Auto-generated method stub /*检查收件人电话格式与简讯字数是否超过70字符*/ if(isPhoneNumberValid(strDestAddress)=true & iswithin70(strMessage)=true) try /*两个条件都检查通过的情况下,发送简讯 * * 先建构一PendingIntent对象并使用getBroadcast()方法进行Broadcast * * 将PendingIntent,电话,简讯文字等参数传入sendTextMessage()方法发送简讯*/ / SmsManager manager = SmsManager.getDefault(); / smsManager.sendTextMessage(10086,null,hi,this is sms,null,null); PendingIntent mPI = PendingIntent.getBroadcast(Send_smsActivity.this, 0, new Intent(), 0); smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);/ smsManager.sendTextMessage(10086,null,hi,this is sms,mPI,null); catch(Exception e) e.printStackTrace(); Toast.makeText(Send_smsActivity.this, duanxin成功! , Toast.LENGTH_SHORT).show();/ mEditText1.setText();/ mEditText2.setText(); /*电话格式与简讯文字不符合条件时,使用Toast告知用户检查*/ else /*电话格式不符*/ if (isPhoneNumberValid(strDestAddress)=false) /*且字数超过70字符*/ if(iswithin70(strMessage)=false) Toast.makeText(Send_smsActivity.this, 电话号码格式错误+短信内容超过70字,请检查!, Toast.LENGTH_SHORT).show(); else Toast.makeText(Send_smsActivity.this, 电话号码格式错误,请检查! , Toast.LENGTH_SHORT).show(); /*字数超过70字符*/ else if (iswithin70(strMessage)=false) Toast.makeText(Send_smsActivity.this, 短信内容超过70字,请删除部分内容!, Toast.LENGTH_SHORT).show(); ); /*检查字符串是否为电话号码的方法,并回传true or false的判断值*/ public static boolean isPhoneNumberValid(String phoneNumber) boolean isValid = false; /* 可接受的电话格式有: * (? : 可以使用 ( 作为开头 * (d3): * 紧接着三个数字 * )? : 可以使用)接续 * - ? : * 在上述格式后可以使用具选择性的 -. * (d3) : * 再紧接着三个数字 * - ? : * 可以使用具选择性的 - 接续. * (d4)$: * 以四个数字结束. * 可以比对下列数字格式: * * (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890 */ String expression = 10-910; /* 可接受的电话格式有: * (? : * 可以使用 ( 作为开头 * (d2): * 紧接着两个数字 * )? : 可以使用)接续 * - ? : * 在上述格式后可以使用具选择性的 -. * (d4) : * 再紧接着四个数字 * - ? : * 可以使用具选择性的 - 接续. * (d4)$: * 以四个数字结束. * 可以比对下列数字格式: * * (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890 */ String expression2 =10-910; CharSequence inputStr = phoneNumber; /*建立Pattern*/ Pattern pattern = Ppile(expression); /*将Pattern 以参数传入Matcher作Regular expression*/ Matcher matcher = pattern.matcher(inputStr); /*建立Pattern2*/ Pattern pattern2 =Ppile(expression2); /*将Pattern2 以参数传入Matcher2作Regular expression*/ Matcher matcher2= pattern2.matcher(inputStr); if(matcher.matches()|matcher2.matches() isValid = true; return isValid; public static boolean iswithin70(String text) if (text.length()= 70) return true; else return false; 其中调用系统发送短信的代码如下:PendingIntent mPI = PendingIntent.getBroadcast(Send_smsActivity.this, 0, new Intent(), 0); smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);其中sendTextMessage方法:sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent)destinationAddress: 收件人号码scAddress: 短信中心服务号码, 这里设置为nulltext: 发送内容sentIntent: 发送短信结果状态信号(是否成功发送),new 一个Intent , 操作系统接收到信号后将广播这个Intent.此过程为异步.deliveryIntent: 对方接收状态信号(是否已成功接收).在gen文件夹中的R方法代码如下(注意:这个方法代码是自动生成的,在主方法中引用R包后就可以调用,其作用有点类似于jsp中的配置文件)package com.sms;public final class R public static final class attr public static final class drawable public static final int ic_launcher=0x7f020000; public static final class id public static final int mButton1=0x7f050004; public static final int mEditText1=0x7f050001; public static final int mEditText2=0x7f050003; public static final int textView1=0x7f050000; public static final int textView3=0x7f050002; public static final class layout public static

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论