安卓开发之短信发送器的开发

package com.lidaochen.test;

import android.content.Intent;
import android.os.Bundle;
import android.provider.Telephony;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private EditText et_number;
    private EditText et_content;

    // 当我们开启的Activity页面关闭的时候,就调用下面这个方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
/*        if (requestCode == 1)
        {
            // 代表请求ContactActivity这个页面的数据
            String phone = data.getStringExtra("phone");
            et_number.setText(phone);
        }
        else if(requestCode == 2)
        {
            // 代表请求SmsTemplateActivity这个页面的数据
            String smsContent = data.getStringExtra("smsContent");
            et_content.setText(smsContent);
        }*/
        if (resultCode == 10)
        {
            // 说明数据是从ContactActivity页面返回的
            String phone = data.getStringExtra("phone");
            et_number.setText(phone);
        }
        else if(resultCode == 20)
        {
            // 说明数据是从SmsTemplateActivity页面返回的
            String smsContent = data.getStringExtra("smsContent");
            et_content.setText(smsContent);
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 找到EditText控件
        et_number = (EditText)findViewById(R.id.et_number);
        et_content = (EditText)findViewById(R.id.et_content);
    }

    // 点击按钮 跳转到ContactActivity页面
    public void add(View v) {
        Intent intent = new Intent(this, ContactActivity.class);
        // startActivity(intent);
        // 如果点击按钮 开启了另外一个Activity,并且当开启的这个Activity关闭的时候,我想要这个开启Activity的数据,用下面的方法开启Activity
        startActivityForResult(intent, 1);
    }

    // 点击按钮 跳转到SmsTemplateActivity页面
    public void insertsms(View v)
    {
        Intent intent = new Intent(this, SmsTemplateActivity.class);
        startActivityForResult(intent, 2);
        // startActivity(intent);
    }

    public void send(View v)
    {
        // 获取发送短信的内容
        String number = et_number.getText().toString().trim();
        String content = et_content.getText().toString().trim();
        // 获取到SmsManager的实例
        SmsManager smsManager = SmsManager.getDefault();
        ArrayList<String> divideMessage = smsManager.divideMessage(content);
        for (String div : divideMessage)
        {
            /**
             * destinationAddress  发送给谁
             * scAddress  服务中心号码
             *
             * text 要发送的内容
             */
            smsManager.sendTextMessage(number, null, div, null, null);
        }
    }
}
package com.lidaochen.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class ContactActivity extends AppCompatActivity {
    private List<Person> lists;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact);
        // 找到ListView控件
        ListView lv = (ListView)findViewById(R.id.lv);
        // 准备ListView要显示的数据,这里模拟点假的数据
        lists = new ArrayList<Person>();
        for (int i = 0; i < 20; i++)
        {
            Person p = new Person();
            p.setName("张三" + i);
            p.setPhone("1100" + i);
            lists.add(p);
        }
        // 展示数据
        lv.setAdapter(new MyAdaper());
        // 给ListView设置点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // 获取我点中的条目的数据
                String phone = lists.get(position).getPhone();
                // 把数据返回给调用者
                Intent intent = new Intent();
                intent.putExtra("phone", phone);
                // 把结果返回给调用者
                setResult(10, intent);
                // 关闭当前页面
                finish();
            }
        });
    }

    private class MyAdaper extends BaseAdapter {
        @Override
        public int getCount() {
            return lists.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view;
            if (convertView == null)
            {
                view = View.inflate(getApplicationContext(), R.layout.contact_item, null);
            }
            else
            {
                view = convertView;
            }
            // 找到我们在item中定义的控件,用来显示数据
            TextView tv_name = (TextView)view.findViewById(R.id.tv_name);
            TextView tv_phone = (TextView)view.findViewById(R.id.tv_phone);
            // 展示数据
            tv_name.setText(lists.get(position).getName());
            tv_phone.setText(lists.get(position).getPhone());
            return view;
        }
    }
}
package com.lidaochen.test;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class SmsTemplateActivity extends AppCompatActivity {
    String[] objects = {"我在吃饭,请稍后联系","我在开会,请稍后联系","我在上课,请稍后联系","我在打代码,请稍后联系","我在约会,请稍后联系"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sms_template);
        // 找到ListView控件
        ListView lv = (ListView)findViewById(R.id.lv);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.smstemplate_item, objects);
        // 显示数据
        lv.setAdapter(adapter);
        // 设置ListView的条目点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                // 取出点击条目的数据
                String smsContent = objects[position];
                // 把smsContent返回调用者
                Intent intent = new Intent();
                intent.putExtra("smsContent", smsContent);
                setResult(20, intent);
                // 关闭页面
                finish();
            }
        });
    }
}

smstemplate_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView"
    android:textColor="#00ff5d"
    android:textAppearance="?android:attr/textAppearanceLarge" />
原文地址:https://www.cnblogs.com/duxie/p/10991719.html