每周一点小技术之不是我说的

首先说下,这个系列的博文基本上是针对一些新人或者说是业余的但对安卓开发有一定兴趣的人,所以会对使用说的比较细但对一些基本原理的方面说的比较笼统,只讲个大概意思。
这个安卓工程是在eclipse中建立的,所以需要您配置安卓的开发环境,其中分别为Eclipse、JDK、Android SDK、ADT,具体环境搭建可以在网上查找,资源是很多的。
该程序实现的功能是:设置控制命令,监听短信,符合命令格式则进行执行程序,将短信内容转发给想要发送的手机号。
首先打开eclipse,在软件中打开工程文件,在工程中可以在左侧看到文件资源,对于新手来说,本程序只要关注src文件夹,layout文件夹中的文件就可以了。
工程文件
src中的文件里面放的是代码,layout中放的布局文件。
MainActivity是安卓程序的入口代码,只要打开程序,首先要执行的就是该文件里面的onCreate方法,所以,一般对于变量,控件等初始化还有对按钮的监听都是放到这个方法中,同时,我在这个方法中写了按钮的监听事件,也就是当按钮被按的时候,就执行onClick(View v)方法,对命令进行保存并显示保存好的命令。

//初始化

                showinfor = (TextView) findViewById(R.id.textView1);
                numberedit = (EditText)findViewById(R.id.editText1);
                smsManager = SmsManager.getDefault();
                paIntent = PendingIntent.getBroadcast(this, 0, new Intent(), 0); 
                smsManager = SmsManager.getDefault();
                SMS_INBOX = Uri.parse("content://sms/inbox");
                sp = getSharedPreferences("User", Context.MODE_PRIVATE);        
                Button btn = (Button) findViewById(R.id.button1);

                showinfor.setText("");;//清除当前显示
                showinfor.setText("当前命令为:"+sp.getString("mingling", "")+"\n");
                //按键响应监听
                btn.setOnClickListener(new View.OnClickListener() {
                    //按键响应方法
                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub



                        //获得输入的命令
                        mingling=numberedit.getText().toString();

                        //将命令保存
                        Editor editor = sp.edit();  
                        editor.putString("mingling", mingling);  
                        editor.commit(); 

                        //显示保存成功
                        showinfor.setText("");;
                        showinfor.append("命令保存成功:"+mingling+"\n");

                    }

                });

因为需要监听短信,所以要写一个类ReceiverSms继承BroadcastReceiver广播,这样,当短信来的时候,就可以监听,执行该类,将获得的短信内容,放到意图intent里传回MainActivity,传回来后还是要执行onCreate,所以,我们还要在onCreate中对传回来的intent进行解析:


                //获得意图
                intent = getIntent();
                //判断是否为空
                if (intent != null) {
                    //获得短信的号码和内容
                    address = intent.getStringExtra("sms_address");
                    bodyString = intent.getStringExtra("sms_body");

                    if (address != null && bodyString != null) {

                        showinfor.setText("当前命令为:"+sp.getString("mingling", "")); 

                        mingling = sp.getString("mingling", "");

对intent进行解析,获得传过来的短信内容和电话号码,此功能对号码没有要求,可以不接收。拿到短信内容后,就要对短信内容进行解析,看看是不是符合我们的命令,要是不符合的话就不用管了,这样主要可以防止别人随意对你的手机进行控制,只要改下命令就好了。

String [] temp = null;
                        temp=bodyString.split("\\|");//对接收到的短信进行解析,短信内容以|进行分割
                        //短信内容例如:ml|10086|是
                        //则向10086发送是

                        if (temp[0].equalsIgnoreCase(mingling)) {
                            smsManager.sendTextMessage(temp[1], null,temp[2],paIntent, null);
                            showinfor.setText("收到命令为:"+temp[1]+"+"+temp[2]);
                        }

这里要说下split方法,用“|”作为分隔的话,必须加上转义符号,也就是“\”,如果不加“\”话,“|”作为连字符,也就是将多个符号作为分割符,比如“aaabaaacaaa”,用split(b|c)就可以所有“aaa”都提取出来。
程序的工程和apk上传到百度云:百度网盘

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值