日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

pm1 android,Android Sensor SDK

發布時間:2023/12/4 Android 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。