Android 发短信功能

运行效果如图所示:
 
 
首先新建一个android project
 
在string.xml中定义需要用到的字符串:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!>
    <string name="app_name">发短信程序</string>
    <string name="str_input_phone_number">请输入手机号</string>
    <string name="str_input_sms_content">请输入短信内容</string>
    <string name="str_send_sms">发送短信</string>
    <string name="str_remind_input_phone_number">请输入手机号</string>
    <string name="str_remind_sms_send_finish">发送完成</string>
</resources>

在main.xml中编辑界面控件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/str_input_phone_number"
     />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/phone_number_editText"
        />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/str_input_sms_content"
        />        
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/sms_content_editText"
        />        
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/str_send_sms"
        android:id="@+id/send_sms_button"
        />        
</LinearLayout>

最后在MainActivity中编写发送短信的逻辑代码:

package com.sms.ui;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        phone_number_editText = (EditText) findViewById(R.id.phone_number_editText);
        sms_content_editText = (EditText) findViewById(R.id.sms_content_editText);
        send_sms_button = (Button) findViewById(R.id.send_sms_button);
        
        send_sms_button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String phone_number = phone_number_editText.getText().toString().trim();
                String sms_content = sms_content_editText.getText().toString().trim();
                if(phone_number.equals("")) {
                    Toast.makeText(MainActivity.this, R.string.str_remind_input_phone_number, Toast.LENGTH_LONG).show();
                } else {
                    SmsManager smsManager = SmsManager.getDefault();
                    if(sms_content.length() > 70) {
                        List<String> contents = smsManager.divideMessage(sms_content);
                        for(String sms : contents) {
                            smsManager.sendTextMessage(phone_number, null, sms, null, null);
                        }
                    } else {
                     smsManager.sendTextMessage(phone_number, null, sms_content, null, null);
                    }
                    Toast.makeText(MainActivity.this, R.string.str_remind_sms_send_finish, Toast.LENGTH_SHORT).show();
                }
            }     
        });
    }
    
    private EditText phone_number_editText;
    private EditText sms_content_editText;
    private Button send_sms_button;
}

在功能清单文件中声明发短信权限:

原文地址:https://www.cnblogs.com/dennytao/p/5537272.html