pm1 android,Android Sensor SDK

本文档详细介绍了如何在Android Studio和Eclipse中集成Sensoro Sensor Kit SDK,包括添加依赖、配置权限、启动服务、监听设备事件、数据透传、设备升级以及传感器对象的使用方法。此外,还提供了设备升级的完整步骤和传感器数据属性的说明。适用于Android应用开发者进行物联网设备的集成和管理。
摘要由CSDN通过智能技术生成

Android Sensor SDK

Step By Step

1.新建工程

Android Studio配置

将sensoro-sensor-kit.jar包放入道libs文件夹下,然后在当前工程下的build.gradle文件配置项中的dependencies新增内容,,如下compile files('libs/sensoro-sensor-kit.jar')

Eclipse配置

将sensoro-sensor-kit.jar包放入道libs文件夹下,右击工程propeties,选择Java build Path,在Library选项中添加sensoro-sensor-kit依赖关系

2.Android Manifest文件说明

在permission节点下新增以下权限和功能,以下权限和功能是必选项

添加service,如下

android:name="com.sensoro.sensor.kit.update.service.DfuService"

android:exported="true" />

添加build.gradle依赖,如下

compile 'no.nordicsemi.android:dfu:1.0.0'

compile group: 'com.google.protobuf', name: 'protobuf-java', version: '2.5.0'

3.代码调用示例说明

1.sdk 核心功能调用示例

SensoroDeviceManager sensoroDeviceManager = SensoroDeviceManager.getInstance(this);

try {

sensoroDeviceManager.startService();

} catch (Exception e) {

e.printStackTrace();

}

sensoroDeviceManager.setSensoroDeviceListener(new SensoroDeviceListener() {

@Override

public void onNewDevice(SensoroDevice sensoroDevice) {//当发现新设备的时候该函数会被回调

}

@Override

public void onGoneDevice(SensoroDevice sensoroDevice) {//设备消失的情况下,该函数被回调

}

@Override

public void onUpdateDevices(final ArrayList arrayList) {//定期回调数据更新函数

}

});

说明:SensoroDeviceManager 是传感器设备管理类,负责处理发现设备和设备消失以及设备信息更新功能,该类是单例类,可通过getInstance方法获得该对象

SensoroDeviceListener 用于回调通知发现设备,设备消息,和设备更新

4. 透传实现

1.启动任务

SensoroDevice sensoroDevice = this.getIntent().getParcelableExtra("sensoroDevice");

sensoroDeviceSession = new SensoroDeviceSession(this, sensoroDevice);

sensoroDeviceSession.startSession("password", new SensoroDeviceSession.ConnectionCallback() {

@Override

public void onConnectFailed(int i) {//连接传感器失败

}

@Override

public void onConnectSuccess() {//连接传感器成功

}

@Override

public void onNotify(byte[] bytes) {//数据透传回调

}

});

2.写入数据

byte []data = SensoroUtils.HexString2Bytes(str);

if (sensoroDeviceSession != null) {

sensoroDeviceSession.write(data, new

SensoroDeviceSession.WriteCallback() {

@Override

public void onWriteSuccess() {//数据写入成功

}

@Override

public void onWriteFailure(int i) {//数据写入失败

}

});

}

5. 设备升级说明

创建对象

//参数1:上下文

//参数2:SensoroDevice 对象(扫描获得)

mSensoroDeviceSession = new SensoroDeviceSession(this.getApplicationContext(), mSensoroDevice);

开始升级

//参数1:升级文件路径

//参数2:密码

//参数3:监听

mSensoroDeviceSession.startUpdate(path, "", new OnDeviceUpdateObserver() {

@Override

public void onEnteringDFU(String s, String s1, String s2) {

loge("正在进入DFU-->>" + s + ",s1 = " + s1 + ",s2 = " + s2);

}

@Override

public void onUpdateCompleted(String s, String s1, String s2) {

loge("升级完成-->" + s + ",s1 = " + s1 + ",s2 = " + s2);

}

@Override

public void onDFUTransfering(String s, int i, float v, float v1, int i1, int i2, String s1) {

loge("onDFUTransfering==========s = " + s + ",i = " + i + ",v = " + v + ",v1 = " + v1 + ",i1 = " + i1

+ ",i2 = " + i2 + ",s1 = " + s1);

}

@Override

public void onUpdateValidating(String s, String s1) {

loge("检验文件:onUpdateValidating=====" + s + "s1 = " + s1);

}

@Override

public void onUpdateTimeout(int i, Object o, String s) {

loge("超时");

}

@Override

public void onDisconnecting() {

loge("断开设备连接");

}

@Override

public void onFailed(String s, String s1, Throwable throwable) {

loge("升级失败======" + s + ",s1 = " + s1 + ",msg = " + (throwable == null ? "e 为空" : throwable

.getMessage()));

}

});添加生命周期方法

/**

* 加入生命周期方法onSessionResume!!!

*/

@Override

protected void onResume() {

super.onResume();

mSensoroDeviceSession.onSessionResume();

}

/**

* 加入生命周期方法onSessonPause!!!

*/

@Override

protected void onPause() {

super.onPause();

mSensoroDeviceSession.onSessonPause();

}

6. 传感器设备对象说明

说明:SensoroDevice 为传感器设备对象,以下为对象属性

serialNumber ---String; // SN

macAddress---String; // MAC

hardwareVersion---String;//硬件版本号

firmwareVersion---String;//固件版本号

batteryLevel---Integer;// 剩余电量

temperature---Float;// 温度

light----Float; // 光线照度

humidity---Integer;//湿度

accelerometerCount---Integer; // 加速度计数器

rssi---int;

customize----byte[];//自定义数据

drip---Integer;//滴漏

co---Float;//一氧化碳

co2---Float;//二氧化碳

no2---Float;//二氧化氮

methane---Float;//甲烷

lpg---Float;液化石油气

pm1---Float;

pm25---Float;//PM2.5

pm10---Float;

coverstatus---Integer;//井盖状态

level---Float;//液位

isDfu---boolean;//是否是DFU模式;

例子代码

适用于Android studio

修订历史

日期

版本

修订人

内容

2016-07-27

1.0

Will

初始内容

2017-04-19

1.2

Will

增加透传功能说明,及传感器支持

2018-04-19

1.3

ddong1031

增加升级模块和新传感器支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值