Для моего проекта я пытаюсь отсканировать HM-10 BLE с помощью собственного приложения.
Я использую этот пример Сканирование для устройств Bluetooth с React Native . Кажется, что я успешно установил библиотеку, потому что когда я запускаю код, я не получаю ошибки. Я сделал следующие шаги.
react-native init reactnativeBLE
npm i --save react-native-ble-manager
npm install
react-native link react-native-ble-manager
react-native run-ios
Однако, когда я запускаю пример кода, я не нахожу никаких устройств. В моем файле App.js
я скопировал код примера:
import React, { Component } from 'react';
import {
AppRegistry,
ListView,
NativeAppEventEmitter,
View,
Text,
Button } from 'react-native';
import BleManager from 'react-native-ble-manager';
// I changed this to export default App
class BluetoothScanner extends Component {
constructor(props){
super(props);
const dataSource = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
this.devices = [];
this.state = {
dataSource: dataSource.cloneWithRows(this.devices)
};
}
componentDidMount() {
console.log('bluetooth scanner mounted');
NativeAppEventEmitter.addListener('BleManagerDiscoverPeripheral',(data) =>
{
let device = 'device found: ' + data.name + '(' + data.id + ')';
if(this.devices.indexOf(device) == -1) {
this.devices.push(device);
}
let newState = this.state;
newState.dataSource = newState.dataSource.cloneWithRows(this.devices);
this.setState(newState);
});
BleManager.start({showAlert: false})
.then(() => {
// Success code
console.log('Module initialized');
});
}
startScanning() {
console.log('start scanning');
BleManager.scan([], 120);
}
render() {
return (
<View style={{padding: 50 }}>
<Text>Bluetooth scanner</Text>
<Button onPress={() => this.startScanning()} title="Start scanning"/>
<ListView
dataSource={this.state.dataSource}
renderRow={(rowData) => <Text>{rowData}</Text>}
/>
</View>
);
}
}
Мой вопрос
Почему я не могу сканировать устройства BLE, когда нажимаю start scanning
?
Нужна ли дополнительная настройка?
Любые комментарии или советы будут очень признательны! Заранее спасибо:)