Android 短信发送器

public class MainActivity extends AppCompatActivity {

    private EditText et_number;
    private EditText et_content;

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

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

    //当我开启的Activity页面关闭的时候 这个方法就调用
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 1) {
            // 代表请求ContactActivity这个页面的数据
            String phone = data.getStringExtra("phone");
            et_number.setText(phone);
        } else if (requestCode == 2) {
            // 代表请求 短信模板页面的数据
            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) {
//            // 说明数据是从 SmsTempalte返回的
//            String smsContent = data.getStringExtra("smscontent");
//            et_content.setText(smsContent);
//        }
    }
    // 点击按钮 发送短信
    public void send(View v) {
        //1 获取发送短信的号码 和发送短信的内容
        String number = et_number.getText().toString().trim();
        String content = et_content.getText().toString().trim();
        //2 获取到smsmanager的实例
        SmsManager smsManager = SmsManager.getDefault();
        // 短信内容可能会过长,所以需要分割?
        ArrayList<String> divideMessages = smsManager.divideMessage(content);
        for (String div : divideMessages) {
            /**
             * destinationAddress 发送给谁
             * scAddress 服务中心号码
             * text 要发送的内容
             */
            smsManager.sendTextMessage(number, null, div, null, null);
        }
    }
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.a43_sms_sender.MainActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/et_number"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="请输入手机号码"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/et_number"
            android:layout_alignParentRight="true"
            android:onClick="add"
            android:text="+"/>

    </RelativeLayout>

    <EditText
        android:id="@+id/et_content"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:gravity="top"
        android:hint="请输入发送短信的内容"/>
    <Button
        android:onClick="insertsms"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="插入短信模板"/>
    <Button
        android:onClick="send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="发送"/>

</LinearLayout>


public class ContactActivity extends AppCompatActivity {

    private List<Person> lists;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contact);         //加载布局
        //1 找到控件
        ListView lv = (ListView) findViewById(R.id.lv);
        //2 准备listview 要显示的数据 模拟点假数据
        lists = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            Person p = new Person();
            p.setName("张三" + i);
            p.setPhone("11" + i);
            lists.add(p);
        }
        //3 展示数据
        lv.setAdapter(new MyAdapter());
        //4 给listview 设置点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //5 获取我点中条目的数据 数据在哪里存着呢 就去哪里取
                String phone = lists.get(position).getPhone();
                //5.0 把数据返回给调用者
                Intent intent = new Intent();
                intent.putExtra("phone", phone);
                // 把结果返回给调用者
                setResult(10, intent);
                // 关闭当前页面
                finish();
            }
        });
    }
    // 后退键
    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

    private class MyAdapter 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;
            }
            //1 找到我们在item中定义的控件 用来显示数据
            TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
            TextView tv_phone = (TextView) view.findViewById(R.id.tv_phone);
            //2 展示数据
            tv_name.setText(lists.get(position).getName());
            tv_phone.setText(lists.get(position).getPhone());
            return view;
        }
    }
}

public class SmsTemplateActivity extends AppCompatActivity {

    String objects[] ={"我在吃饭,请稍后联系","我在开会,请稍后联系","我在上课,请稍后联系","我在打代码,请稍后联系","我在约会,请稍后联系"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sms_template);

        //1 找到lv
        ListView lv = (ListView) findViewById(R.id.lv);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.smstemplate_item, objects);
        //2 显示数据
        lv.setAdapter(adapter);
        //3 设置lv的条目的点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //4 取出点击条目的数据
                String smsContent = objects[position];
                //5 把smsContent返回给调用者
                Intent intent = new Intent();
                intent.putExtra("smscontent", smsContent);
                setResult(20, intent);

                //调用finish
                finish();
            }
        });
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值