关于智能农业所用到的代码与思路总结

原创 2018年04月15日 12:19:43

1.总结思路:

这次做的智能农业的项目代码难度倒不是很难,但是关于智能农业这个项目中运用了好多编程思想,这是此次想要总结的;
1.首先创建好开始界面,输入服务器的IP地址跳转到操作界面;
2.在操做界面请求服务器端的数据并在获取数据期间加载不可取消进度条,使okHttpClienth或者AsyncHttpClient请求数据完成后显示数据;
    像这样:

3.点击操作界中各个数据选项,跳转到具体设施操作界面,加载界面时获取服务器中各个设施状态,判断设施状态显示界面中按钮状态,这样哪怕退出界面后,在进入界面按钮也会更新状态。
(举例:比如风扇关闭时,显示的就是打开风扇这个图片按钮)如下:

4。点击按钮,发送json数据给服务器控制设备的开关。这里按钮状态需要与打开关闭设备状态一起改变,所以需要设置标识位来改变按钮状态。

2.全局变量和公共类的使用

在智能农业中,其代码难度只能说是一般般,但是代码的的重复使用确实很多,所以使用公共类和全局变量可以有效的减少工作量。
首先使用全局变量,有效的减少了每个界面之间的传值,全局变量只要一处改变,其他地方调用时就会收到改变的值比如开始输入的IP地址就是使用全局变量,而访问服务器处则直接调用全局变量:

在输入出定义全局静态变量:

 public static String string;

 private void modify() {
        final EditText editText = new EditText(this);
        android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(this);
        builder.setTitle("欢迎您,请先设置服务器IP");
        builder.setView(editText);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                string=editText.getText().toString();
                Intent intent = new Intent(StartActivity.this, MainActivity.class);
                startActivity(intent);
            }
        });
        builder.show();
    }

直接调用全局静态变量StartActivity.string:

 private static String getaddress(String url) {
              return HTTP+ StartActivity.string+HTTP2+url;
    }
其次项目中需要多次进行请求数据,所以我们将请求数据写在一个公共类中,在使用时直接调用
public class OkHttp {
    private static final String HTTP="http://";
    private static final String HTTP2= ":8890/type/jason/action/";
    private static  OkHttpClient okHttpClient=new OkHttpClient();
    public static final MediaType Json=MediaType.parse("application/json;charset=UTF-8");

    public static void get(String url, Callback callback){
        // 创建一个request对象
        Request request = new Request.Builder().url(getaddress(url)).build();
        Call call= okHttpClient.newCall(request);
        call.enqueue(callback);
    }

    public static void post(String url,String json,int number, Callback callback){
        try {
            JSONObject jsonObject=new JSONObject();
            jsonObject.put(json,number);
            RequestBody requestBody=RequestBody.create(Json,jsonObject.toString());
            Request request = new Request.Builder().url(getaddress(url)).post(requestBody).build();
            okHttpClient.newCall(request).enqueue(callback);
        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

    private static String getaddress(String url) {
        Log.e("000000000",  HTTP+ StartActivity.string+HTTP2+url);
        return HTTP+ StartActivity.string+HTTP2+url;
    }
}

关于网络服务器请求

1.AsyncHttpClient的使用方法:
可以看这篇简单的博客
[关于AsyncHttpClient的使用方法](https://blog.csdn.net/nmwwbreed/article/details/79886320)
2.okHttpClienth的使用方法和与上一个的区别将会抽空写在下一个博客中。

C# 多网卡 Server Listen

时间: 2004/5/20作者: Robert参考: MSDN电邮: zsc771120@yahoo.com.cn关键词: TcpListener IPEndPoint IPAddress IPAdd...
  • zzzsssccc
  • zzzsssccc
  • 2004-05-23 16:26:00
  • 1636

Android应用源码之智能农业

  • 2016年09月08日 09:19
  • 4.64MB
  • 下载

智能农业控制系统

  • 2016年01月18日 13:48
  • 2.8MB
  • 下载

智能农业app(打开风扇)

初学者运用Http请求传参控制沙盘(风扇、警报、、)
  • jump_down
  • jump_down
  • 2017-03-20 22:16:11
  • 178

联想智能农业移动应用开发系统用户手册

1. 系统介绍 1.1 系统概述 联想智能农业移动应用开发系统是一套模拟智能农业场景的应用研发测试平台。可广泛运用于移动APP开发、嵌入式设备开发、软件测试、用户体验测试(需配选件)等。不...
  • qq_15950325
  • qq_15950325
  • 2016-10-24 22:26:51
  • 3420

基于zigbee、Wifi物联网智能农业解决方案

  • 2016年04月02日 22:32
  • 1.29MB
  • 下载

基于ZigBee的智慧农业监测系统

我国是农业大国, 传统农业在国际市场上的优势主要依赖于丰富的自然资源和低廉的劳动力成本。随着物联网等高新技术的发展,我国传统农业正在加快向现代农业转型,而智慧农业将成为现代农业未来发展的趋势。所谓“智...
  • liqingkk
  • liqingkk
  • 2015-05-27 22:20:17
  • 2547

中国人工智能系列白皮书-智能农业

  • 2017年10月20日 12:29
  • 2.45MB
  • 下载

物联网在农业中的应用ppt

  • 2013年12月23日 13:47
  • 4.54MB
  • 下载

ZigBee在智慧农业中的应用

电子技术、传感器技术及网络技术的发展促进了农业信息化水平的提高,以信息网络为中心的智慧农业、精准农业等一系列新的农业生产模式已成为当前研究的热点。通过大量遍布于农田、温室大棚等目标区域的传感器,实时采...
  • liqingkk
  • liqingkk
  • 2015-05-19 23:10:00
  • 1748
收藏助手
不良信息举报
您举报文章:关于智能农业所用到的代码与思路总结
举报原因:
原因补充:

(最多只允许输入30个字)