发短信

只要是手机。都具备打电话、发短信这些基本功能,那么。今天我们首先了解下如何用Android发短信

1、新建工程

2、修改已经生成的main.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello"
  11. />
  12. <EditText
  13. android:id="@+id/text"
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. android:text="@string/text"
  17. />
  18. <EditText
  19. android:layout_width="fill_parent"
  20. android:layout_height="200px"
  21. android:background="#ffffff"
  22. android:textColor="#000000"
  23. android:id="@+id/message"
  24. android:text="@string/message"
  25. />
  26. <Button
  27. android:id="@+id/button"
  28. android:layout_width="fill_parent"
  29. android:layout_height="wrap_content"
  30. android:layout_centerInParent="true"
  31. android:text="@string/button"
  32. />
  33. </LinearLayout>

3、配置res/values/Strings.xml

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <stringname="hello">短信测试</string>
  4. <stringname="app_name">短信测试</string>
  5. <stringname="button">发送</string>
  6. <stringname="text">13800138000</string>
  7. <stringname="message">请输入短信内容</string>
  8. </resources>

4、添加关键代码

  1. importjava.util.regex.Matcher;
  2. importjava.util.regex.Pattern;
  3. importandroid.app.Activity;
  4. importandroid.app.PendingIntent;
  5. importandroid.content.Intent;
  6. importandroid.os.Bundle;
  7. importandroid.telephony.gsm.SmsManager;
  8. importandroid.view.View;
  9. importandroid.widget.Button;
  10. importandroid.widget.EditText;
  11. importandroid.widget.Toast;
  12. publicclassSendMessageextendsActivity{
  13. /**Calledwhentheactivityisfirstcreated.*/
  14. privateButtonsend;
  15. privateEditTextaddress;
  16. privateEditTextmessage;
  17. @Override
  18. publicvoidonCreate(BundlesavedInstanceState){
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. message=(EditText)findViewById(R.id.message);
  22. address=(EditText)findViewById(R.id.text);
  23. send=(Button)findViewById(R.id.button);
  24. message.setOnClickListener(newEditText.OnClickListener(){
  25. @Override
  26. publicvoidonClick(Viewv){
  27. //TODOAuto-generatedmethodstub
  28. message.setText("");
  29. }
  30. });
  31. send.setOnClickListener(newButton.OnClickListener(){
  32. @Override
  33. publicvoidonClick(Viewv){
  34. //TODOAuto-generatedmethodstub
  35. Stringaddre=address.getText().toString();
  36. Stringmess=message.getText().toString();
  37. SmsManagersmsManager=SmsManager.getDefault();
  38. if(isPhoneNumberValid(addre)==true){//&&iswithid70(mess)==true可采用同样的方式校验短信内容、长度等
  39. try{
  40. PendingIntentmPI=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0);
  41. smsManager.sendTextMessage(addre,null,mess,mPI,null);
  42. }catch(Exceptione){
  43. //TODO:handleexception
  44. }
  45. Toast.makeText(SendMessage.this,"发送成功",Toast.LENGTH_SHORT).show();
  46. address.setText("");
  47. message.setText("");
  48. }else{
  49. Toast.makeText(SendMessage.this,"***不符合",Toast.LENGTH_SHORT).show();
  50. }
  51. }
  52. });
  53. }
  54. publicstaticbooleanisPhoneNumberValid(StringphoneNumber){
  55. booleanisValid=false;
  56. Stringexpression="^//(?(//d{3})//)?[-]?(//d{3})[-]?(//d{5})$";
  57. Stringexpression2="^//(?(//d{3})//)?[-]?(//d{4})[-]?(//d{4})$";
  58. CharSequenceinputStr=phoneNumber;
  59. Patternpattern=Pattern.compile(expression);
  60. Matchermatcher=pattern.matcher(inputStr);
  61. Patternpattern2=Pattern.compile(expression2);
  62. Matchermatcher2=pattern2.matcher(inputStr);
  63. if(matcher.matches()||matcher2.matches()){
  64. isValid=true;
  65. }
  66. returnisValid;
  67. }
  68. }

5、修改AndroidManifest.xml,增加短信发送权限

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.sendMessage"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  7. <activityandroid:name=".SendMessage"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <actionandroid:name="android.intent.action.MAIN"/>
  11. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. </activity>
  14. </application>
  15. <uses-permissionandroid:name="android.permission.SEND_SMS">
  16. </uses-permission>
  17. </manifest>

这样,整个demo就完成了 一下是运行效果

点击发送后调用土司消息显示结果

小结

1.整体来说比较简单,主要用到了

  1. PendingIntentmPI=PendingIntent.getBroadcast(SendMessage.this,0,newIntent(),0);
  2. smsManager.sendTextMessage(addre,null,mess,mPI,null);

2.别忘记在AndroidManifest.xml里添加权限

  1. <uses-permissionandroid:name="android.permission.SEND_SMS">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值