zoukankan      html  css  js  c++  java
  • 安卓开发之短信发送器的开发

    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" />
  • 相关阅读:
    sublime text3安装package control插件图文教程
    conda创建新环境
    常用的vscode插件安装
    数组合并组合
    内核软死锁
    Ubuntu分区格式化并挂载新增磁盘方法
    Linux如何列出svn一个文件夹下的所有文件
    C++ UTF-8和GBK相互转化
    Linux shell如何用正则表达式匹配分组数据
    如何对接jsoncpp?
  • 原文地址:https://www.cnblogs.com/duxie/p/10991719.html
Copyright © 2011-2022 走看看