网站建设的具体代码,网站建设与维护ppt,建站之星授权,百度推广账号注册流程今天要讲的是使用Android开发发送短信程序。我们先来看下运行效果图(1) 图(2)图(3)图(1)#xff1a;当我们运行项目时#xff0c;出现在屏幕的效果#xff1b;图(2)#xff1a;当我们输…今天要讲的是使用Android开发发送短信程序。我们先来看下运行效果 图(1) 图(2)图(3)图(1)当我们运行项目时出现在屏幕的效果图(2)当我们输入错误格式的电话号码时出现在屏幕的效果图图(3)当我们输入格式正确时短信发送成功的效果。下面来讲解该项目的开发过程。1、创建一个Android项目这里命名为SendMessage。2、修改程序的布局文件main.xml内容。具体代码如下android:idid/widget1android:backgrounddrawable/whiteandroid:layout_widthfill_parentandroid:layout_heightfill_parentxmlns:androidhttp://schemas.android.com/apk/res/androidandroid:idid/widget27android:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textstring/str_textviewandroid:textSize16spandroid:layout_x0pxandroid:layout_y12pxandroid:idid/myEditText1android:layout_widthfill_parentandroid:layout_heightwrap_contentandroid:textandroid:textSize18spandroid:layout_x60pxandroid:layout_y2pxandroid:idid/myEditText2android:layout_widthfill_parentandroid:layout_height223pxandroid:textandroid:textSize18spandroid:layout_x0pxandroid:layout_y52pxandroid:idid/myButton1android:layout_width162pxandroid:layout_heightwrap_contentandroid:textstring/str_button1android:layout_x80pxandroid:layout_y302px3、修改values目录下的string.xml文件并在该目录下新建一个color.xml文件具体代码如下string.xml:SendMessage发送收件人color.xml:#808080#FFFFFF#0000FF这里说一下为什么我们要新建color.xml文件因为我们布局文件中要用到。大家可能已经发现我们运行效果图的背景颜色不是黑色而是白色系统默认情况下背景是黑色这里我们使用color.xml文件来修改背景颜色。4、修改主程序MyActivity.java该文件的具体代码如下public class MyActivity extends Activity{/*声明变量一个Button与两个EditText*/private Button mButton1;private EditText mEditText1;private EditText mEditText2;/** Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);/** 通过findViewById构造器来建构* EditText1,EditText2与Button对象*/mEditText1 (EditText) findViewById(R.id.myEditText1);mEditText2 (EditText) findViewById(R.id.myEditText2);mButton1 (Button) findViewById(R.id.myButton1);/*将默认文字加载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(){Overridepublic 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()广播* 将PendingIntent,电话,短信文字等参数* 传入sendTextMessage()方法发送短信*/PendingIntent mPI PendingIntent.getBroadcast(MyActivity.this, 0, new Intent(), 0);smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);}catch(Exception e){e.printStackTrace();}Toast.makeText(MyActivity.this,送出成功!! ,Toast.LENGTH_SHORT).show();}else{/* 电话格式与短信文字不符合条件时,以Toast提醒 */if (isPhoneNumberValid(strDestAddress)false){ /*且字数超过70字符*/if(iswithin70(strMessage)false){Toast.makeText(MyActivity.this,电话号码格式错误短信内容超过70字,请检查!!,Toast.LENGTH_SHORT).show();}else{Toast.makeText(MyActivity.this,电话号码格式错误,请检查!! ,Toast.LENGTH_SHORT).show();}}/*字数超过70字符*/else if (iswithin70(strMessage)false){Toast.makeText(MyActivity.this,短信内容超过70字,请删除部分内容!!,Toast.LENGTH_SHORT).show();}}}});}/*检查字符串是否为电话号码的方法,并返回true or false的判断值*/public static boolean isPhoneNumberValid(String phoneNumber){boolean isValid false;/* 可接受的电话格式有:* ^\\(? : 可以使用 ( 作为开头* (\\d{3}): 紧接着三个数字* \\)? : 可以使用)接续* [- ]? : 在上述格式后可以使用具选择性的 -.* (\\d{3}) : 再紧接着三个数字* [- ]? : 可以使用具选择性的 - 接续.* (\\d{5})$: 以五个数字结束.* 可以比较下列数字格式:* (123)456-7890, 123-456-7890, 1234567890, (123)-456-7890*/String expression ^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5}){1}quot;;/* 可接受的电话格式有:* ^\\(? : 可以使用 ( 作为开头* (\\d{3}): 紧接着三个数字* \\)? : 可以使用)接续* [- ]? : 在上述格式后可以使用具选择性的 -.* (\\d{4}) : 再紧接着四个数字* [- ]? : 可以使用具选择性的 - 接续.* (\\d{4})$: 以四个数字结束.* 可以比较下列数字格式:* (02)3456-7890, 02-3456-7890, 0234567890, (02)-3456-7890*/String expression2^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4}){1}quot;;CharSequence inputStr phoneNumber;/*创建Pattern*/Pattern pattern Pattern.compile(expression);/*将Pattern 以参数传入Matcher作Regular expression*/Matcher matcher pattern.matcher(inputStr);/*创建Pattern2*/Pattern pattern2 Pattern.compile(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;}}}5、到此整个项目已经开发完毕到此本该结束但是考虑到一些细节有必要说下。本项目的基本思想在具体实现上是通过SmsManager对象的sendTextMessage()方法来实现的其中sendTextMessage()方法需要传入5个值依次是收件人地址String、发送地址String、正文String、发送服务PendingIntent和送达服务PendingInten。在这里我们还详细的定义了电话的格式文中有详细的说明。还约束了短信内容的字长