import React, { useState, useEffect } from 'react'; import { StyleSheet, Text, View, Button } from 'react-native'; import BleManager from 'react-native-ble-manager'; const App = () => { const [devices, setDevices] = useState([]); const [connectedDevice, setConnectedDevice] = useState(null); const [deviceData, setDeviceData] = useState(null); useEffect(() => { BleManager.start({ showAlert: false }); BleManager.enableBluetooth(); }, []); const scanDevices = () => { BleManager.scan([], 5, true) .then((results) => { setDevices(results); }) .catch((error) => { console.log(error); }); }; const connectDevice = (device) => { BleManager.connect(device.id) .then(() => { setConnectedDevice(device); BleManager.startNotification( device.id, 'serviceUUID', 'characteristicUUID' ).then(() => { console.log('Notification started'); }); }) .catch((error) => { console.log(error); }); }; const disconnectDevice = () => { BleManager.disconnect(connectedDevice.id) .then(() => { setConnectedDevice(null); setDeviceData(null); }) .catch((error) => { console.log(error); }); }; const readDeviceData = () => { BleManager.read( connectedDevice.id, 'serviceUUID', 'characteristicUUID' ) .then((data) => { setDeviceData(data); }) .catch((error) => { console.log(error); }); }; return ( <View style={styles.container}> <Text style={styles.title}>Bluetooth Medical Devices Manager</Text> {connectedDevice ? ( <View style={styles.connectedDevice}> <Text style={styles.deviceName}>{connectedDevice.name}</Text> <Button title="Disconnect" onPress={() => disconnectDevice()} /> <Button title="Read Data" onPress={() => readDeviceData()} /> {deviceData ? ( <Text style={styles.deviceData}>{deviceData}</Text> ) : null} </View> ) : ( <View style={styles.deviceList}> <Text style={styles.subtitle}>Available Devices:</Text> {devices.map((device) => ( <View style={styles.deviceItem} key={device.id}> <Text>{device.name}</Text> <Button title="Connect" onPress={() => connectDevice(device)} /> </View> ))} <Button title="Scan" onPress={() => scanDevices()} /> </View> )} </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor: '#F5FCFF', }, title: { fontSize: 20, fontWeight: 'bold', marginBottom: 20, }, subtitle: { fontSize: 16, fontWeight: 'bold', marginBottom: 10, }, connectedDevice: { alignItems: 'center', justifyContent: 'center', }, deviceName: { fontSize: 18, fontWeight: '