android发短信操作

  1. 创建android项目
  2. 创建界面布局
    1. TextView文本
    2. EditText电话号码及姓名输入框
    3. 发送短信按钮
  3. 处理发生短信请求
    1. 获取控件
    2. 给发生短信按钮设置点击事件
      1. 获取短信号码及内容
      2. 判断短信号码及内容是否为空
      3. 获取短息的管理器对象
      4. 如果你的字符数大于了70拆分
      5. 发送短信的处理
  4. 添加发送短信的权限

strings.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <string name="app_name">lession01_sms</string>  
  5.     <string name="action_settings">Settings</string>  
  6.     <string name="phone_num">请输入手机号码</string>  
  7.     <string name="phone_content">请输入发送内容</string>  
  8.     <string name="phone_button">发送短信</string>  
  9.   
  10. </resources>  


布局文件:activity_sms.xml

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     xmlns:tools="http://schemas.android.com/tools"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:paddingBottom="@dimen/activity_vertical_margin"  
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"  
  7.     android:paddingRight="@dimen/activity_horizontal_margin"  
  8.     android:paddingTop="@dimen/activity_vertical_margin"  
  9.     tools:context=".SmsActivity" >  
  10.   
  11.     <TextView  
  12.         android:id="@+id/view_phone"  
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"  
  15.         android:text="@string/phone_num" />  
  16.     <EditText  
  17.          android:id="@+id/edit_num"  
  18.         android:layout_width="match_parent"  
  19.         android:layout_height="wrap_content"  
  20.         android:inputType="phone"  
  21.         android:layout_below="@+id/view_phone"  
  22.         android:layout_alignParentLeft="true" />  
  23.     <TextView  
  24.         android:id="@+id/view_content"  
  25.         android:layout_width="wrap_content"  
  26.         android:layout_height="wrap_content"  
  27.         android:text="@string/phone_content"  
  28.         android:layout_below="@+id/edit_num" />  
  29.     <EditText  
  30.          android:id="@+id/edit_content"  
  31.         android:layout_width="match_parent"  
  32.         android:layout_height="wrap_content"  
  33.         android:inputType="text"  
  34.         android:minLines="5"  
  35.         android:layout_below="@+id/view_content"/>  
  36.     <Button  
  37.         android:id="@+id/button_send"  
  38.         android:layout_width="wrap_content"  
  39.         android:layout_height="wrap_content"  
  40.         android:text="@string/phone_button"  
  41.         android:layout_below="@+id/edit_content"/>  
  42.   
  43. </RelativeLayout>  


添加权限


SmsActivity.java

  1. package com.example.lession01_sms;  
  2.   
  3. import java.util.ArrayList;  
  4.   
  5. import android.os.Bundle;  
  6. import android.app.Activity;  
  7. import android.app.PendingIntent;  
  8. import android.content.Intent;  
  9. import android.telephony.SmsManager;  
  10. import android.view.Menu;  
  11. import android.view.View;  
  12. import android.widget.Button;  
  13. import android.widget.EditText;  
  14. import android.widget.Toast;  
  15.   
  16. public class SmsActivity extends Activity {  
  17.   
  18.     // 声明控件对象  
  19.     public Button btn_send;  
  20.     public EditText edit_num;  
  21.     public EditText edit_content;  
  22.   
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         // 设置显示的视图(布局文件)  
  27.         setContentView(R.layout.activity_sms);  
  28.         // 获取控件对象  
  29.         btn_send = (Button) findViewById(R.id.button_send);  
  30.         edit_num = (EditText) findViewById(R.id.edit_num);  
  31.         edit_content = (EditText) findViewById(R.id.edit_content);  
  32.   
  33.         // 为按钮控件注册事件  
  34.         btn_send.setOnClickListener(new View.OnClickListener() {  
  35.   
  36.             @Override  
  37.             public void onClick(View arg0) {  
  38.                 // 获取电话号码  
  39.                 String phone_num = edit_num.getText().toString();  
  40.                 // 获取发送内容  
  41.                 String phone_content = edit_content.getText().toString();  
  42.                 // 获取短信管理器对象  
  43.                 SmsManager smsManager = SmsManager.getDefault();  
  44.                 // 意图对象  
  45.                 PendingIntent pendingIntent = PendingIntent.getBroadcast(  
  46.                         SmsActivity.this0new Intent(), 0);  
  47.   
  48.                 //70分页  
  49.                 ArrayList<String> contents = smsManager.divideMessage(phone_content);  
  50.                 for(String c :contents){  
  51.                     smsManager.sendTextMessage(phone_num, null, c, pendingIntent, null);  
  52.                 }  
  53.                   
  54.                   
  55.                 // 发送信息操作  
  56.                 smsManager.sendTextMessage(phone_num, null, phone_content,  
  57.                         pendingIntent, null);  
  58.                 // 吐司效果  
  59.                 Toast.makeText(SmsActivity.this"发送完毕", Toast.LENGTH_LONG)  
  60.                         .show();  
  61.             }  
  62.         });  
  63.     }  
  64.   
  65.     @Override  
  66.     public boolean onCreateOptionsMenu(Menu menu) {  
  67.         // Inflate the menu; this adds items to the action bar if it is present.  
  68.         getMenuInflater().inflate(R.menu.sms, menu);  
  69.         return true;  
  70.     }  
  71.   
  72. }  

android模拟器5554给5556发送短信



模拟器5556接受短信




当5554给5556发送大于70的短信时进行自动拆分


当5556接收大于70字符的短信时,收到的内容将会自动拆分显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值