Android ---模拟手机发送短信

转载 2012年03月21日 11:08:43
    上次成功实现了“拨打电话”后,心里兴奋极了,于是一口气研究了手机发送短信的原理,其实也很简单。

新建SMS,工程如下所示:


     


    ●修改res/values目录下的string.xml文件,如下所示:


  1. <?xml version="1.0"encoding="utf-8"?>  
  2. <resources>  
  3.    
  4.     <string name="hello">Hello World,SMSActivity!</string>  
  5.     <string name="app_name">发送短信</string>  
  6.     <string name="mobile">请输入手机号</string>  
  7.     <string name="content">请输入短信内容</string>  
  8.     <string name="button">发送短信</string>  
  9.     <string name="sendSucc">发送成功!</string>  
  10. </resources>  


     ●修改res/layout目录下的main/xml文件


  1. <?xml version="1.0"encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.    
  7.     <TextView  
  8.        android:layout_width="fill_parent"  
  9.        android:layout_height="wrap_content"  
  10.        android:text="@string/mobile" />  
  11.    
  12.     <EditText  
  13.        android:id="@+id/mobile"  
  14.        android:layout_width="fill_parent"  
  15.        android:layout_height="wrap_content">  
  16.    
  17.         <requestFocus />  
  18.     </EditText>  
  19.    
  20.     <TextView  
  21.        android:id="@+id/textView1"  
  22.        android:layout_width="fill_parent"  
  23.        android:layout_height="wrap_content"  
  24.        android:text="@string/content" />  
  25.    
  26.     <EditText  
  27.        android:id="@+id/content"  
  28.        android:layout_width="fill_parent"  
  29.        android:layout_height="wrap_content"  
  30.        android:layout_weight="0.96"  
  31.        android:inputType="textMultiLine"/>  
  32.    
  33.     <Button  
  34.        android:id="@+id/button"  
  35.        android:layout_width="wrap_content"  
  36.        android:layout_height="wrap_content"  
  37.        android:text="@string/button" />  
  38.    
  39. </LinearLayout>  


     这个文件主要用于设计界面,界面预览可以点击eclipse编辑文件区的Graphical  Layout,如下所示:



   

      ●修改src/com/sinosoft目录下的SMSActivity.java文件

 

  1. package com.sinosoft;  
  2.    
  3. import android.app.Activity;  
  4. import android.telephony.SmsManager;  
  5. import android.widget.Toast;  
  6. import android.os.Bundle;  
  7. import android.widget.*;  
  8. import android.view.*;  
  9. import java.util.*;  
  10. public class SMSActivity extends Activity {  
  11.     /** Calledwhen the activity is first created. */  
  12.     @Override  
  13.     public void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.main);  
  16.         Button buttion=(Button) this.findViewById(R.id.button);  //获取按钮  
  17.         buttion.setOnClickListener(newView.OnClickListener() {   //为按钮设置监听事件  
  18.             
  19.            public void onClick(View v) {  
  20.               // TODO Auto-generatedmethod stub  
  21.               EditText mobileText=(EditText) findViewById(R.id.mobile);   //获得手机号码文本框  
  22.               EditText contentText=(EditText) findViewById(R.id.content); //获得短信文本框  
  23.               String mobile=mobileText.getText().toString();  //获得手机号码  
  24.               String content=contentText.getText().toString();  //获得短信内容  
  25.               SmsManager smsManager=SmsManager.getDefault();  //获取系统短信管理器  
  26.               List<String> list=smsManager.divideMessage(content);  
  27.               for(String l:list){  //如果短信超过70个字,则将短信内容拆分为几条发送  
  28.                   smsManager.sendTextMessage(mobile, null, l, nullnull);  
  29.               }  
  30.            //  Toast.makeText(SMSActivity.this,R.string.success, Toast.LENGTH_LONG).show();  
  31.               Toast.makeText(SMSActivity.this, R.string.sendSucc, Toast.LENGTH_LONG).show();  //添加短信发送成功提醒  
  32.            }  
  33.        });  
  34.     }  
  35. }  


 

    具体解释详见代码注释

 

    ●设置发送短信权限


     在AndroidMainFest/xml加入一句:<uses-permission android:name="android.permission.SEND_SMS"/>

就可,代码如下所示:

  

  1. <?xml version="1.0"encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     package="com.sinosoft"  
  4.     android:versionCode="1"  
  5.     android:versionName="1.0" >  
  6.    
  7.     <uses-sdk android:minSdkVersion="10"/>  
  8.     <uses-permission  android:name="android.permission.SEND_SMS"/>  
  9.     <application  
  10.        android:icon="@drawable/ic_launcher"  
  11.        android:label="@string/app_name" >  
  12.         <activity  
  13.            android:name=".SMSActivity"  
  14.            android:label="@string/app_name" >  
  15.             <intent-filter>  
  16.                 <action android:name="android.intent.action.MAIN" />  
  17.                 <category android:name="android.intent.category.LAUNCHER" />  
  18.             </intent-filter>  
  19.         </activity>  
  20.     </application>  
  21.    
  22. </manifest>  

     ●运行程序


     运行此程序后发送短信的界面如下所示:




     输入“手机号码”与“短信内容”,如果发送成功,则会提示你“发送成功”:




这是接收到的手机短信:




       很简单吧,其实实现了这2个小心愿之后我决定要回过头好好研究这个项目各个文件的作用,这是下节的开始的内容,小例子就学到这儿...


       这是本人学习的结果,欢迎转载,欢迎交流,但转载务必给出本文章的链接地址:http://blog.csdn.net/youqishini/article/details/7371347,谢谢~


Android学习笔记(5)---模拟手机发送短信

上次成功实现了“拨打电话”后,心里兴奋极了,于是一口气研究了手机发送短信的原理,其实也很简单。 新建SMS,工程如下所示:           ●修改res/values目录下的...
  • youqishini
  • youqishini
  • 2012年03月19日 23:36
  • 4710

Android调用系统的打电话和发短信功能

一、打电话      1、添加打电话的权限在manifast文件中。                 2、使用Uri.parse(String a)创建Uri。            U...
  • yangshuangyue
  • yangshuangyue
  • 2016年07月14日 15:54
  • 6023

JS基础——模拟短信发送对话

JS基础——模拟短信发送对话 #box{ width:320px; height:400px; border:10px solid #ccc; margin:0 auto;} #div1{ widt...
  • u011175410
  • u011175410
  • 2014年10月30日 11:30
  • 993

Js中级--模拟短信发送

在学习的过程中,看到js学习的视频中在讲解模拟短信发送,所以自己也动手写了一下这段代码。      在写一个普通的功能时,首先需要设计页面,也就是html结构,然后用css样式修饰,使其界面更加美观。...
  • u010297791
  • u010297791
  • 2016年12月13日 09:29
  • 1313

JS+CSS做一个模拟发短信的页面!

最近在学习JS,刚试着做了一个模拟手机发短信的页面,发出来交流一下。 写的过程中,还是发现CSS这块儿有问题的,并没有想象中的那么好!布局时候也是各种问题,不过好在最后都解决了,半路出家自学前端,只...
  • wpbfj
  • wpbfj
  • 2016年09月11日 18:19
  • 1853

在Emulator上模拟来电、短信等 效果

在Android Studio中,当我们需要模拟收到短信、或模拟来电时,虽然AS里面有一个自带Android Device Monitor可以调试,但是当我们启动它的时候,往往需要将AS与模拟器断开,...
  • qq_33465421
  • qq_33465421
  • 2016年09月17日 20:49
  • 1138

android学习十四(android的接收短信)

android中短信的发送也接收拦截
  • wj903829182
  • wj903829182
  • 2014年11月18日 10:53
  • 2253

Android 发短信功能实现

在自己的应用增加发短信功能有两种方式: 1,跳转到系统短信页面发送,调用如下代码即可。 Intent intent = new Intent(Intent.ACTION_SENDTO, Uri ...
  • kongxiuqi
  • kongxiuqi
  • 2016年03月02日 18:01
  • 3720

android 发送短信的两种方式

android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信;主要代码如下: Java代码   /**      * 直接调用短信接口发短信      *...
  • u012230055
  • u012230055
  • 2016年05月19日 11:46
  • 6519

Android调用系统的打电话和发短信功能

一、打电话      1、添加打电话的权限在manifast文件中。                 2、使用Uri.parse(String a)创建Uri。            U...
  • yangshuangyue
  • yangshuangyue
  • 2016年07月14日 15:54
  • 6023
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android ---模拟手机发送短信
举报原因:
原因补充:

(最多只允许输入30个字)