有一个简单的短信发送器,界面如下:

首先要在/res/values/strings.xml中定义要用到的字符串:
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">短信发送器</string> <string name="action_settings">Settings</string> <string name="tel_label">接收人</string> <string name="content_label">短信内容</string> <string name="send_label">发送</string> <string name="send_successful">发送成功</string> </resources>
其次在res/layout/activity_main.xml中画出如上界面:
<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:orientation="vertical" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/tel_label" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/receiver" android:inputType="number" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/content_label" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/content" android:inputType="textMultiLine" android:minLines="3" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/send_btn" android:text="@string/send_label"/> </LinearLayout>
当界面也画好后,就可以在MainActivity.java中获取号码和内容,并进行内容发送了。
...... public class MainActivity extends Activity { private EditText receiverView; private EditText contentView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); receiverView = (EditText) findViewById(R.id.receiver); contentView = (EditText) findViewById(R.id.content); Button sendBtn = (Button) findViewById(R.id.send_btn); sendBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String receiver = receiverView.getText().toString(); String content = contentView.getText().toString(); //获得短信管理器 SmsManager smsManager = SmsManager.getDefault(); //当内容过长时,分段发送 ArrayList<String> messages = smsManager.divideMessage(content); contentView.setText(""); for(String message : messages) { smsManager.sendTextMessage(receiver, null, message, null , null); Toast.makeText(getApplicationContext(), R.string.send_successful, Toast.LENGTH_LONG).show(); } } }); } }
因为发送短信是要钱的业务,所以肯定要在清单文件中配置发送短信的权限,配置如下:
<uses-permission android:name="android.permission.SEND_SMS"/>
然后就可以运行到虚拟机进行测试了。
浙公网安备 33010602011771号