只要是手机。都具备打电话、发短信这些基本功能,那么。今天我们首先了解下如何用Android发短信
1、新建工程
2、修改已经生成的main.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- />
- <EditText
- android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/text"
- />
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="200px"
- android:background="#ffffff"
- android:textColor="#000000"
- android:id="@+id/message"
- android:text="@string/message"
- />
- <Button
- android:id="@+id/button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_centerInParent="true"
- android:text="@string/button"
- />
- </LinearLayout>
3、配置res/values/Strings.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- <stringname="hello">短信测试</string>
- <stringname="app_name">短信测试</string>
- <stringname="button">发送</string>
- <stringname="text">13800138000</string>
- <stringname="message">请输入短信内容</string>
- </resources>
4、添加关键代码
- importjava.util.regex.Matcher;
- importjava.util.regex.Pattern;
- importandroid.app.Activity;
- importandroid.app.PendingIntent;
- importandroid.content.Intent;
- importandroid.os.Bundle;
- importandroid.telephony.gsm.SmsManager;
- importandroid.view.View;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- importandroid.widget.Toast;
- publicclassSendMessageextendsActivity{
- /**Calledwhentheactivityisfirstcreated.*/
- privateButtonsend;
- privateEditTextaddress;
- privateEditTextmessage;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- message=(EditText)findViewById(R.id.message);
- address=(EditText)findViewById(R.id.text);
- send=(Button)findViewById(R.id.button);
- message.setOnClickListener(newEditText.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- message.setText("");
- }
- });
- send.setOnClickListener(newButton.OnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //TODOAuto-generatedmethodstub
- Stringaddre=address.getText().toString();
- Stringmess=message.getText().toString();
- SmsManagersmsManager=SmsManager.getDefault();
- if(isPhoneNumberValid(addre)==true){//&&iswithid70(mess)==true可采用同样的方式校验短信内容、长度等
- try{
- PendingIntentmPI=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0);
- smsManager.sendTextMessage(addre,null,mess,mPI,null);
- }catch(Exceptione){
- //TODO:handleexception
- }
- Toast.makeText(SendMessage.this,"发送成功",Toast.LENGTH_SHORT).show();
- address.setText("");
- message.setText("");
- }else{
- Toast.makeText(SendMessage.this,"***不符合",Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- publicstaticbooleanisPhoneNumberValid(StringphoneNumber){
- booleanisValid=false;
- Stringexpression="^//(?(//d{3})//)?[-]?(//d{3})[-]?(//d{5})$";
- Stringexpression2="^//(?(//d{3})//)?[-]?(//d{4})[-]?(//d{4})$";
- CharSequenceinputStr=phoneNumber;
- Patternpattern=Pattern.compile(expression);
- Matchermatcher=pattern.matcher(inputStr);
- Patternpattern2=Pattern.compile(expression2);
- Matchermatcher2=pattern2.matcher(inputStr);
- if(matcher.matches()||matcher2.matches()){
- isValid=true;
- }
- returnisValid;
- }
- }
5、修改AndroidManifest.xml,增加短信发送权限
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.sendMessage"
- android:versionCode="1"
- android:versionName="1.0">
- <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
- <activityandroid:name=".SendMessage"
- android:label="@string/app_name">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- </application>
- <uses-permissionandroid:name="android.permission.SEND_SMS">
- </uses-permission>
- </manifest>
这样,整个demo就完成了 一下是运行效果
点击发送后调用土司消息显示结果
小结
1.整体来说比较简单,主要用到了
- PendingIntentmPI=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0);
- smsManager.sendTextMessage(addre,null,mess,mPI,null);
2.别忘记在AndroidManifest.xml里添加权限
- <uses-permissionandroid:name="android.permission.SEND_SMS">