Skip to content

Commit 379cd90

Browse files
committed
update getVersion Demo
refer cf44a8043c467c202c116622e2bdd6d75d1cf572
1 parent 62973c6 commit 379cd90

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

miot-sdk/Bluetooth.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -458,14 +458,25 @@ export class IBluetooth {
458458
return Promise.resolve(null);
459459
}
460460
/**
461+
*
461462
* 更新版本号,蓝牙的版本号 connect 之后才能查看。
462463
* @param {boolean} isFromlocal 10028版本开始支持。是否本地读取。仅限iOS,是否直接从设备读取版本号,默认为否,从服务端读取版本号,如果出现升级/降级时版本号错误的情况,此处请传true。
463464
* 注意:此属性对Android无效,Android默认本地读取。
464465
* 注意:如果从本地读取的版本号错误,说明版本号在固件端时加密的
465-
* @param {boolean} isCrypto 10028版本开始支持。版本号是否是加密的,默认没加密。如果isCrypto为true,直接返回加密数据,使用时需要自己解密
466+
* @param {boolean} isCrypto 10028版本开始支持。版本号是否是加密的,默认没加密。如果读出来的数据,是乱码的,请将isCrypto设置为true,然后使用Device.getBluetoothLE().securityLock.decryptMessageWithToken(version)解密,如果还是不对,那就说明固件端自己做了加密,需要把这个数据再进行解密一次。
466467
* @return {Promise<any>}
468+
*
469+
* @example 正常情况
470+
* Device.getBluetoothLE().getVersion().then()
471+
*
472+
* @example 加密情况
473+
* Device.getBluetoothLE().getVersion(true, true).then(version => {
474+
* var data = Device.getBluetoothLE().securityLock.decryptMessageWithToken(version).then(data => {
475+
* console.log("设备版本为:" + data);
476+
* })
477+
* })
467478
*/
468-
getVersion(isFromlocal = false,isCrypto=false) {
479+
getVersion(isFromlocal = false, isCrypto = false) {
469480
return Promise.resolve(null);
470481
}
471482
}

projects/com.xiaomi.bledemo/Main/XiaomiBle.js

+15-12
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import Host from "miot/Host";
1313
import React from 'react';
1414
import { ScrollView, StyleSheet, Text, View } from "react-native";
1515
import CommonCell from './CommonCell';
16+
import { IBluetoothLock } from "miot";
1617

1718

1819
let bt = Device.getBluetoothLE();
@@ -55,6 +56,7 @@ export default class MainPage extends React.Component {
5556
if (services.length <= 0) { return }
5657
console.log("bluetoothSeviceDiscovered", blut.mac, services.map(s => s.UUID), bt.isConnected)
5758
this.addLog("蓝牙服务发现完成:\n" + JSON.stringify(services.map(s => s.UUID)))
59+
5860
let s = services.map(s => { return { uuid: s.UUID, char: [] } })
5961
this.setState({
6062
services: s
@@ -66,6 +68,14 @@ export default class MainPage extends React.Component {
6668
s.startDiscoverCharacteristics()
6769
})
6870
}
71+
Device.getBluetoothLE().getVersion(true, true).then(version => {
72+
var data = Device.getBluetoothLE().securityLock.decryptMessageWithToken(version).then(data => {
73+
console.log("设备版本为:" + data);
74+
this.addLog("设备版本为:" + version);
75+
})
76+
}).catch(err => {
77+
console.log(err, '-------');
78+
});
6979
})
7080
this._s2 = BluetoothEvent.bluetoothCharacteristicDiscovered.addListener((bluetooth, service, characters) => {
7181
console.log("bluetoothCharacteristicDiscovered", characters.map(s => s.UUID), bt.isConnected);
@@ -135,11 +145,11 @@ export default class MainPage extends React.Component {
135145
connect() {
136146
this.addLog("准备开始蓝牙连接")
137147
if (bt.isConnected) {
138-
bt.getVersion().then(version => {
139-
this.addLog("设备版本为:" + version);
140-
}).then(err => {
141-
console.log(err, '-------');
142-
});
148+
// bt.getVersion(true, true).then(version => {
149+
// this.addLog("设备版本为:" + version);
150+
// }).then(err => {
151+
// console.log(err, '-------');
152+
// });
143153
console.log();
144154
this.addLog("蓝牙设备已经连接")
145155
this.addLog("开始发先服务")
@@ -148,13 +158,6 @@ export default class MainPage extends React.Component {
148158
this.addLog("蓝牙正处于连接中,请等待连接结果后再试")
149159
} else {
150160
bt.connect(-1).then((data) => {
151-
this.addLog("ble connect successed: " + JSON.stringify(data))
152-
this.addLog("startDiscoverServices")
153-
bt.getVersion().then(version => {
154-
this.addLog("设备版本为:" + version);
155-
}).then(err => {
156-
console.log(err, '-------');
157-
});
158161
bt.startDiscoverServices();
159162
}).catch((data) => {
160163
this.addLog("ble connect failed: " + JSON.stringify(data))

0 commit comments

Comments
 (0)