- 创建android项目
- 创建界面布局
- TextView文本
- EditText电话号码及姓名输入框
- 发送短信按钮
- 处理发生短信请求
- 获取控件
- 给发生短信按钮设置点击事件
- 获取短信号码及内容
- 判断短信号码及内容是否为空
- 获取短息的管理器对象
- 如果你的字符数大于了70拆分
- 发送短信的处理
- 添加发送短信的权限
strings.xml
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="app_name">lession01_sms</string>
- <string name="action_settings">Settings</string>
- <string name="phone_num">请输入手机号码</string>
- <string name="phone_content">请输入发送内容</string>
- <string name="phone_button">发送短信</string>
- </resources>
布局文件:activity_sms.xml
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".SmsActivity" >
- <TextView
- android:id="@+id/view_phone"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/phone_num" />
- <EditText
- android:id="@+id/edit_num"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:inputType="phone"
- android:layout_below="@+id/view_phone"
- android:layout_alignParentLeft="true" />
- <TextView
- android:id="@+id/view_content"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/phone_content"
- android:layout_below="@+id/edit_num" />
- <EditText
- android:id="@+id/edit_content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:inputType="text"
- android:minLines="5"
- android:layout_below="@+id/view_content"/>
- <Button
- android:id="@+id/button_send"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/phone_button"
- android:layout_below="@+id/edit_content"/>
- </RelativeLayout>
添加权限
SmsActivity.java
- package com.example.lession01_sms;
- import java.util.ArrayList;
- import android.os.Bundle;
- import android.app.Activity;
- import android.app.PendingIntent;
- import android.content.Intent;
- import android.telephony.SmsManager;
- import android.view.Menu;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- public class SmsActivity extends Activity {
- // 声明控件对象
- public Button btn_send;
- public EditText edit_num;
- public EditText edit_content;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 设置显示的视图(布局文件)
- setContentView(R.layout.activity_sms);
- // 获取控件对象
- btn_send = (Button) findViewById(R.id.button_send);
- edit_num = (EditText) findViewById(R.id.edit_num);
- edit_content = (EditText) findViewById(R.id.edit_content);
- // 为按钮控件注册事件
- btn_send.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View arg0) {
- // 获取电话号码
- String phone_num = edit_num.getText().toString();
- // 获取发送内容
- String phone_content = edit_content.getText().toString();
- // 获取短信管理器对象
- SmsManager smsManager = SmsManager.getDefault();
- // 意图对象
- PendingIntent pendingIntent = PendingIntent.getBroadcast(
- SmsActivity.this, 0, new Intent(), 0);
- //70分页
- ArrayList<String> contents = smsManager.divideMessage(phone_content);
- for(String c :contents){
- smsManager.sendTextMessage(phone_num, null, c, pendingIntent, null);
- }
- // 发送信息操作
- smsManager.sendTextMessage(phone_num, null, phone_content,
- pendingIntent, null);
- // 吐司效果
- Toast.makeText(SmsActivity.this, "发送完毕", Toast.LENGTH_LONG)
- .show();
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.sms, menu);
- return true;
- }
- }
android模拟器5554给5556发送短信
模拟器5556接受短信
当5554给5556发送大于70的短信时进行自动拆分
当5556接收大于70字符的短信时,收到的内容将会自动拆分显示