BLE デバイス (周辺機器) をスキャンし、それらに接続してサービスと特性を読み取るアプリケーションを開発しています。今のところ、特定の特性を持つ周辺機器として機能する iPhone に接続することができました。また、Fitbit Versa Watch に接続して心臓センサーのデータを読み取ることもできました。それらのサービスを発見することはできましたが、ServiceUUId やその特性などのサービスからそれ以上の情報を抽出することはできませんでした。
以下は、反応ネイティブで書かれた私のコードです。
scanAndConnect() {
console.log("Scanning Started");
this.manager.startDeviceScan(null, null, (error, device) => {
if (error) {
// Handle error (scanning will be stopped automatically)
console.log("Error in scanning devices:", error);
return
}
// Check if it is a device you are looking for based on advertisement data
// or other criteria.
console.log("Detected Device Details:", device.id, device.name);
// ||device.localName === 'BLEPeripheralApp')
if (device.name === 'Versa Lite'){ //
// Stop scanning as it's not necessary if you are scanning for one device.
console.log("Device Found, Stopping the Scan.");
console.log("Connecting to:",device.name)
this.manager.stopDeviceScan();
device.connect()
.then((device) => {
// this.info("Discovering services and characteristics")
console.log("Connected...Discovering services and characteristics");
return device.discoverAllServicesAndCharacteristics()
})
.then((device) => {
console.log('Services and characteristics discovered');
//return this.testChar(device)
const services = device.services()
console.log(services);
return device.readCharacteristicForService(services)
// device.readCharacteristicForService("abbaff00-e56a-484c-b832-8b17cf6cbfe8")
// this.info("Setting notifications")
//return this.setupNotifications(device)
})
.then(() => {
const characteristicsData = device.readCharacteristicForService();
console.log(characteristicsData);
//this.info("Listening...")
}, (error) => {
console.warn(error.message);
// this.error(error.message)
})
}
});
}
Service メソッドから serviceUUId を抽出し、そのサービスの特性を読み取るにはどうすればよいですか? 私の iPhone 周辺機器には、読み取りと書き込みができる必要がある 2 つの変更可能な特性があります。サービスから特性、真の価値まで、それらをどのように読み取ることができますか?
どんな助け/提案も大歓迎です。
ありがとう。