Android实战--短信发送器
首先设计界面
<LinearLayout 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=".MainActivity" android:orientation="vertical" > <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入号码" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容" /> </LinearLayout>
如果希望输入内容框变大变宽
可以设置
android:lines="6"
最后再添加button按钮
完整的代码:
<LinearLayout 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=".MainActivity" android:orientation="vertical" > <EditText android:id="@+id/et_phone" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入号码" /> <EditText android:id="@+id/et_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入内容" android:lines="6" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="send" android:text="发送" /> </LinearLayout>
界面如下:
点击发送后会发现报错,权限没设置
再新建一个模拟器avd2.3(版本低,运行快)
同时启动两个模拟器
注意:短信发送器的号码为5556
以上就完成了简单的发送短信功能
但是上面的操作还是存在一个小问题,那就是当短信的长度超过运营商限制的长度的时候,短信发送不出去
修改代码如下:
package com.wuyudong.smssender; import java.util.List; import android.os.Bundle; import android.app.Activity; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void send(View v) { EditText et_phone = (EditText) findViewById(R.id.et_phone); EditText et_content = (EditText) findViewById(R.id.et_content); String phone = et_phone.getText().toString(); String content = et_content.getText().toString(); // 获取短信管理器的对象 SmsManager sm = SmsManager.getDefault(); // 如果短信过长,分割短信,不能超过运营商限定的最长字符数 List<String> smss = sm.divideMessage(content); for (String sms : smss) { // 发送短信 // arg0:对方的号码 // arg1:短信服务中心的号码,不要设置 // arg2:短信内容 sm.sendTextMessage(phone, null, sms, null, null); } } }
搞定
作者:wuyudong
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
如果觉得本文对您有帮助,可以对作者进行小额【赞助】