pm1 android,Android Sensor SDK
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
增加升級模塊和新傳感器支持
總結
以上是生活随笔為你收集整理的pm1 android,Android Sensor SDK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生花生米的功效与作用、禁忌和食用方法
- 下一篇: android中的shape资源,And