onenet android 定位,Android从onenet上获取数据

onenet平台上:

设备信息:主要是设备id和APIKey这两个参数

2f2d1184c33f7123ef8cf100a40af815.png

数据流信息:

其中一个数据流的名称:shumditity

2bb89f07ef4aeebc75d48e2a30773e06.png

最新一个数据:

867f318eb48667e906856ae948f88ba5.png

参考:https://www.arduino.cn/thread-47375-1-2.html

所有数据流的最新一个数据:

"http://api.heclouds.com/devices/36427574/datapoints"

一个数据流中所有数据(指定获取的开始时间):

"http://api.heclouds.com/devices/36427574/datapoints?datastream_id=command1&start=2018-10-12T17:22:33"

虽然指定了时间,但是只能显示100条。可以用limit=120来显示(limit:参与运算的数据点最大数量,默认6000,最大6000):

"http://api.heclouds.com/devices/*****/datapoints?datastream_id=temperature&start=2018-10-12T17:22:33&limit=120”

3c267775f794d4c2be1885dfb47b1f83.png

f864569cefbaaf81d6a30ae25d786d52.png

代码:

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import java.io.IOException;

import java.util.List;

import okhttp3.OkHttpClient;

import okhttp3.Request;

import okhttp3.Response;

public class MainActivity extends Activity {

private static final String DeviceID = "36326052";

private static final String ApiKey = "A1RUKhwKwfTGf0gKhY6bHOz4DOw=";

private static final String shumditity="shumditity";//onenet平台上对应设备的其中一个数据流的名字

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Get();

}

public void Get() {

new Thread(new Runnable() {

@Override

public void run() {

try {

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder().url("http://api.heclouds.com/devices/" + DeviceID + "/datapoints?datastream_id=" + shumditity).header("api-key", ApiKey).build();

Response response = client.newCall(request).execute();

String responseData = response.body().string();

parseJSONWithGSON(responseData);

} catch (IOException e) {

e.printStackTrace();

}

}

}).start();

}

private void parseJSONWithGSON(String jsonData) {

JsonRootBean app = new Gson().fromJson(jsonData, JsonRootBean.class);

Liststreams = app.getData().getDatastreams();

Listpoints = streams.get(0).getDatapoints();

int count = app.getData().getCount();//获取数据的数量

for (int i = 0; i < points.size(); i++) {

String time = points.get(i).getAt();

String value = points.get(i).getValue();

Log.w("www","time="+time);

Log.w("www","value="+value);

}

}

}

打印结果:

6141e70abd7ea7b5fbe23b7fc52d3833.png

在build.gradle中增加:

compile 'com.squareup.okhttp3:okhttp:3.4.1'

compile 'com.google.code.gson:gson:2.7'

在AndroidManifest.xml中添加:

json解析:

json 在线转换工具:http://www.bejson.com/

public class JsonRootBean {

private int errno;

private Data data;

private String error;

public void setErrno(int errno) {

this.errno = errno;

}

public int getErrno() {

return errno;

}

public void setData(Data data) {

this.data = data;

}

public Data getData() {

return data;

}

public void setError(String error) {

this.error = error;

}

public String getError() {

return error;

}

}

public class Data {

private int count;

private Listdatastreams;

public void setCount(int count) {

this.count = count;

}

public int getCount() {

return count;

}

public void setDatastreams(Listdatastreams) {

this.datastreams = datastreams;

}

public ListgetDatastreams() {

return datastreams;

}

}

public class Datapoints {

private String at;

private String value;

public void setValue(String value) {

this.value = value;

}

public String getAt() {

return at;

}

public void setAt(String at) {

this.at = at;

}

public String getValue() {

return value;

}

}

public class Datastreams {

private Listdatapoints;

private String id;

public void setDatapoints(Listdatapoints) {

this.datapoints = datapoints;

}

public ListgetDatapoints() {

return datapoints;

}

public void setId(String id) {

this.id = id;

}

public String getId() {

return id;

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值