【android开发】获取短信信息并发送

博客涉及Android和Java开发,可能会用到Android Studio这一开发工具,在信息技术领域,Android开发结合Java语言是常见的开发组合,能实现丰富的移动应用功能。
package com.zyw.broadcastsendsms;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class SMSBroadcastReceiver extends BroadcastReceiver {
    String mytime;
    public void onReceive(Context context, Intent intent) {
        SmsMessage msg = null;
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Object[] pdusObj = (Object[]) bundle.get("pdus");
            for (Object p : pdusObj) {
                msg= SmsMessage.createFromPdu((byte[]) p);

                String msgTxt =msg.getMessageBody();//得到消息的内容

                Date date = new Date(msg.getTimestampMillis());//时间
                SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd-HH:mm:ss");
                String receiveTime = format.format(date);

                String senderNumber = msg.getOriginatingAddress();

                if (msgTxt.equals("Testing!")) {
                    Toast.makeText(context, "success!", Toast.LENGTH_LONG)
                            .show();
                    System.out.println("success!");
                    return;
                } else if(senderNumber.equals("106911361961537")){
                   // Toast.makeText(context, "jjj", Toast.LENGTH_LONG).show();


                    String[] massage_post = msgTxt.split("@");

                    String adresss_post = massage_post[1];

                    String type_post = massage_post[2];

                    String other = massage_post[0];
                    mytime=receiveTime;
                    if(type_post.equals("1")) {
                        GetThread getThread = new GetThread(adresss_post, type_post);
                        getThread.start();
                    }
                    else
                    {
                        GetThread getThread = new GetThread(adresss_post, "2");
                        getThread.start();
                    }
                   // Log.d("HTTP", "GET:" + value);
                   // System.out.println("发送人:"+senderNumber+" 短信内容:"+msgTxt+"接受时间:"+receiveTime);
                   // System.out.println("发送人:"+key+" 短信内容:"+value+"接受时间:"+receiveTime);
                    return;
                }else {
                    Toast.makeText(context, msgTxt, Toast.LENGTH_LONG).show();

                   // Toast.makeText(context, adresss_post, Toast.LENGTH_LONG).show();
                   //System.out.println("发送人:"+senderNumber+" 发送地址:"+adresss_post+"接受时间:"+receiveTime);
                    return;
                }
            }
            return;
        }
    }



    //子线程:通过GET方法向服务器发送用户名、密码的信息
    class GetThread extends Thread {

        String name;
        String pwd;
       // String date1;
        public GetThread(String name, String pwd) {
            this.name = name;
            this.pwd = pwd;
            //this.date1 = date1;
        }

        @Override
        public void run() {
            //用HttpClient发送请求,分为五步
            //第一步:创建HttpClient对象
            HttpClient httpClient = new DefaultHttpClient();
            //注意,下面这一行中,我之前把链接中的"test"误写成了"text",导致调BUG调了半天没弄出来,真是浪费时间啊
            String url = "http://148.70.158.81/service/content.php?adress=" + name+ "&type=" + pwd +"&time=" + mytime;
            //第二步:创建代表请求的对象,参数是访问的服务器地址
            HttpGet httpGet = new HttpGet(url);
            try {
                //第三步:执行请求,获取服务器发还的相应对象
                HttpResponse response = httpClient.execute(httpGet);
                //第四步:检查相应的状态是否正常:检查状态码的值是200表示正常
                if (response.getStatusLine().getStatusCode() == 200) {
                    //第五步:从相应对象当中取出数据,放到entity当中
                    HttpEntity entity = response.getEntity();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(entity.getContent()));
                    String result = reader.readLine();
                    Log.d("HTTP", "GET:" + result);
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    }






}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值