导入云平台jar包
1.将jar包放入libs文件夹
路径如图:
2.打开build.gradle文件,加入下面一句
implementation files('libs\\nlecloudII.jar')
先开网络权限
在AndroidManifest.xml
里加一句
<uses-permission android:name="android.permission.INTERNET" />
数据获取界面类
public class MonitoringActivity extends AppCompatActivity {
NetWorkBusiness netWorkBusiness;
String baseUrl = "http://api.nlecloud.com:80/";
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_monitoring);
initNle();
}
private void initNle() {
netWorkBusiness = new NetWorkBusiness("", baseUrl);
netWorkBusiness.signIn(new SignIn("你的账号", "你的密码"), new NCallBack<BaseResponseEntity<User>>(this) {
@Override
protected void onResponse(BaseResponseEntity<User> response) {
if (response.getStatus() == 0) {
String token = response.getResultObj().getAccessToken();
Log.e("token", token);
netWorkBusiness = new NetWorkBusiness(token, baseUrl);
startDataFetching();
} else {
Log.e("Login Failed", response.getMsg());
}
}
});
}
private void startDataFetching() {
handler.post(runnable);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.postDelayed(this, 3000);
// 获取温度传感器数据
netWorkBusiness.getSensor("你的设备id", "tem", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String tem = response.getResultObj().getValue();
Log.e("tem", tem);
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
}
};
}
添加可信CA
在xml里创建network_security_config.xml文件并写入以下内容
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.nlecloud.com</domain>
</domain-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
在AndroidManifest.xml加入android:networkSecurityConfig="@xml/network_security_config"
即可
愉快的使用
完整代码
package com.yt.reliccraft;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import cn.com.newland.nle_sdk.requestEntity.SignIn;
import cn.com.newland.nle_sdk.responseEntity.SensorInfo;
import cn.com.newland.nle_sdk.responseEntity.User;
import cn.com.newland.nle_sdk.responseEntity.base.BaseResponseEntity;
import cn.com.newland.nle_sdk.util.NCallBack;
import cn.com.newland.nle_sdk.util.NetWorkBusiness;
public class MonitoringActivity extends AppCompatActivity {
private TextView tvTem,tvHum,tvLight,tvCo2,tvFire;
NetWorkBusiness netWorkBusiness;
String baseUrl = "http://api.nlecloud.com:80/";
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_monitoring);
tvTem = findViewById(R.id.tv_temperature);
tvHum = findViewById(R.id.tv_humidity);
tvLight = findViewById(R.id.tv_light);
tvCo2 = findViewById(R.id.tv_co2);
tvFire = findViewById(R.id.et_monitor_fire);
initNle();
}
private void initNle() {
netWorkBusiness = new NetWorkBusiness("", baseUrl);
netWorkBusiness.signIn(new SignIn("17662862963", "你的密码"), new NCallBack<BaseResponseEntity<User>>(this) {
@Override
protected void onResponse(BaseResponseEntity<User> response) {
if (response.getStatus() == 0) {
String token = response.getResultObj().getAccessToken();
Log.e("token", token);
netWorkBusiness = new NetWorkBusiness(token, baseUrl);
startDataFetching();
} else {
Log.e("Login Failed", response.getMsg());
}
}
});
}
private void startDataFetching() {
handler.post(runnable);
}
Runnable runnable = new Runnable() {
@Override
public void run() {
handler.postDelayed(this, 3000);
// 获取温度传感器数据
netWorkBusiness.getSensor("1035473", "tem", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String tem = response.getResultObj().getValue();
Log.e("tem", tem);
tvTem.setText(tem.trim() + " ℃");
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
// 获取湿度传感器数据
netWorkBusiness.getSensor("1035473", "m_humidity", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String hum = response.getResultObj().getValue();
Log.e("hum", hum);
tvHum.setText(hum.trim() + " %RH");
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
// 获取光照传感器数据
netWorkBusiness.getSensor("1035473", "m_light", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String light = response.getResultObj().getValue();
Log.e("light", light);
tvLight.setText(light.trim() + " lx");
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
// 获取二氧化碳传感器数据
netWorkBusiness.getSensor("1035473", "m_co2", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String co2 = response.getResultObj().getValue();
Log.e("co2", co2);
tvCo2.setText(co2.trim() + " ppm");
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
// 获取火焰传感器数据
netWorkBusiness.getSensor("1035473", "m_fire", new NCallBack<BaseResponseEntity<SensorInfo>>(MonitoringActivity.this) {
@Override
protected void onResponse(BaseResponseEntity<SensorInfo> response) {
if (response != null && response.getStatus() == 0) {
String fire = response.getResultObj().getValue();
Log.e("fire", fire);
if (fire.equals("1")){
tvFire.setText("着火了 \uD83D\uDEA8");
}
else {
tvFire.setText("正常 😆");
}
} else {
Log.e("API Error", response != null ? response.getMsg() : "未知错误");
}
}
});
}
};
}