zoukankan      html  css  js  c++  java
  • 短信发送器小案例 smsManager

    总结实现步骤 
      (1)画 mainActivity页面 
    <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" >
    
        <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_sms_content"
            android:layout_width="match_parent"
            android:layout_height="250dp"
            android:gravity="top"
            android:hint="请输入发送短信的内容" />
    
        
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="insert"
            android:text="插入短信模板" />
        
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="click"
            android:text="发送短信" />
    
    </LinearLayout>
    (2) 画联系人页面  用一个listview展示就可以了  
    (3)写mainActivity的逻辑    主要代码 
    public class MainActivity extends Activity {
    
        private EditText et_number;
        private EditText et_sms_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_sms_content = (EditText) findViewById(R.id.et_sms_content);
            
            
        }
    
        //点击按钮 跳转到短信模板页面 
        public void insert(View v){
            
            Intent intent = new Intent(this,SmsTemplateActivity.class);
            //☆☆☆开启Activity有2种方式  
            //(1)如果想要开启的Activity的界面的数据 用 startActivityForResult();
            //(2)如果就是简简单单页面的跳转  就用startActivity()
            startActivityForResult(intent, 2);
            
        }
        
        
        
        //点击+ 按钮 跳转到 联系人页面 
        public void add(View v) {
            //[1]创建意图对象  
            Intent intent = new Intent(this,ContactActivity.class);
            //[2]开启Activity
    //        startActivity(intent);
            //[3]小细节 ☆☆☆☆  如果一个页面开启另外一个页面  并且当开启的这个页面关闭的时候 还要另外一个页面的数据  使用下面这个方法开启Activity
            startActivityForResult(intent, 1);
            
            
        }
        
        //点击按钮实现发送短信的逻辑 
        public void click(View v) {
            String number = et_number.getText().toString().trim();
            String content = et_sms_content.getText().toString().trim();
            
            //[1]获取smsManager的实例  
            SmsManager smsManager = SmsManager.getDefault();
            //[1.1]如果短信内容过过多 发不出去  分条发送 
            ArrayList<String> divideMessages = smsManager.divideMessage(content);
            for (String div : divideMessages) {
                
                //[2]发送短信数据 
                smsManager.sendTextMessage(number, null, div, null, null);
            }
            
        
            
            
        }
    
        //当我们开启的Activity的页面关闭的时候这个方法会调用
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            
            if (requestCode == 1) {
                
                //代表我要请求 ContactActivity的数据
                String phone = data.getStringExtra("name");
                et_number.setText(phone);
            }else if (requestCode == 2) {
                //代表我要请求SmsTemplateActivity 的数据
                String smscontent = data.getStringExtra("smscontent");
                et_sms_content.setText(smscontent);
                
                
            }
            
            
            /*if (resultCode == 10) {
                //说明数据是由 ContactActivity返回 
                
                String phone = data.getStringExtra("name");
                et_number.setText(phone);
                
            }else if (resultCode == 20) {
                //说明数据是由SmsTemplateActivity返回 
                String smscontent = data.getStringExtra("smscontent");
                et_sms_content.setText(smscontent);
                
            }
            */
            
            
            super.onActivityResult(requestCode, resultCode, data);
        }
        
    
    }
    (4)写短信模板页面  也是用一个listview展示即可  
    (5)短信模板页面主要代码 如下 
    public class SmsTemplateActivity extends Activity {
    
        
        String objects[] = {"我在开会,请稍后联系","我在吃饭,请稍后联系","我在打代码,请稍后联系","我在开车,请稍后联系","我在约会,请稍后联系"};
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_template);
            
            //[1]找到lv控件
            ListView lv = (ListView) findViewById(R.id.lv);
            //[2]创建数据适配器 
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.item, objects);
            //[3]把数据展示到listview上 
            lv.setAdapter(adapter);
            //[4]给lv设置点击事件 
            lv.setOnItemClickListener(new OnItemClickListener() {
    
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                
                    //[5]获取我们点中条目的数据  
                    String smscontent = objects[position];
                    //[6]把这个数据返回给调用者 
                    Intent intent = new Intent();
                    intent.putExtra("smscontent", smscontent);
                    //[7]通过这个方法把数据返回给调用者  
                    setResult(20, intent);
                    //[8]要记得调用finish 
                    finish();
                    
                    
                }
            });
            
            
            
            
        }
    }

    (6)实现发送短信的功能 

    //[1]获取smsManager的实例  
            SmsManager smsManager = SmsManager.getDefault();
            //[1.1]如果短信内容过过多 发不出去  分条发送 
            ArrayList<String> divideMessages = smsManager.divideMessage(content);
            for (String div : divideMessages) {
                
                //[2]发送短信数据 
                smsManager.sendTextMessage(number, null, div, null, null);
            }

    (7)记得要加上发送短信的权限

    android.permission.SEND_SMS
  • 相关阅读:
    ASP.NET Web开发框架之二 数据输入窗体
    针对HTML5的更新和Unobtrusive Validation
    框架:从MVC到开放API
    使用SSIS创建同步数据库数据任务
    MVC里的Filters
    类型构造器也称为静态构造器,类构造器,或类型初始化器
    铁道部新客票系统设计(二)
    深入浅出SQL Server中的死锁
    你所能用到的数据结构(一)
    python网络编程学习笔记(6):Web客户端访问
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/5866198.html
Copyright © 2011-2022 走看看