推荐开源项目:react-native-ble —— 轻松实现React Native中的BLE功能
React Native BLE是一个React Native库,用于在iOS和Android上实现BLE(Bluetooth Low Energy)连接。以下是一个简单的使用示例:
import React, { useEffect, useState } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import RNBleConnection from 'react-native-ble-connection';
export default function App() {
const [connected, setConnected] = useState(false);
const [discoveredServices, setDiscoveredServices] = useState([]);
const connect = async () => {
try {
const deviceId = 'your-device-id'; // 替换为你的设备ID
await RNBleConnection.connect(deviceId);
setConnected(true);
RNBleConnection.discoverServices(deviceId)
.then(services => setDiscoveredServices(services));
} catch (error) {
console.error('Connection error:', error);
}
};
const disconnect = async () => {
try {
const deviceId = 'your-device-id'; // 替换为你的设备ID
await RNBleConnection.disconnect(deviceId);
setConnected(false);
} catch (error) {
console.error('Disconnection error:', error);
}
};
useEffect(() => {
// 在这里可以订阅设备的特定服务或特性,以便在它们发送更新时收到通知
return () => {
// 取消订阅
};
}, []);
return (
<View style={styles.container}>
<Text>BLE Connection Example</Text>
{connected ? (
<Button title="Disconnect" onPress={disconnect} />
) : (
<Button title="Connect" onPress={connect} />
)}
{discoveredServices.map(service => (
<Text key={service.uuid}>{service.uuid}</Text>
))}
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
});
这段代码展示了如何使用react-native-ble-connection
库连接到BLE设备,发现服务,以及如何断开连接。开发者可以根据自己的需求,扩展这个示例以实现更复杂的功能,比如读取特性、写入特性和订阅特性的通知。
评论已关闭