import React, { useRef, useEffect } from 'react';
import { View, Text, StyleSheet, Animated, PermissionsAndroid, Platform } from 'react-native';
import { TouchableOpacity } from 'react-native-gesture-handler';
import { BleManager } from 'react-native-ble-plx';
const manager = new BleManager();
export const test = () => {
const scanXinHao =async () => {
let permissions;
if (Platform.Version >= 31) {
permissions = [
'android.permission.BLUETOOTH_SCAN',
'android.permission.BLUETOOTH_CONNECT',
'android.permission.BLUETOOTH_ADVERTISE'
];
} else {
permissions = ['android.permission.ACCESS_FINE_LOCATION'];
}
for (const permission of permissions) {
const check = await PermissionsAndroid.check(permission);
console.log(`permission ${permission} check ${check}`);
if (!check) {
await PermissionsAndroid.request(permission);
}
}
manager.startDeviceScan(null, null, async (error, device) => {
if (error) {
console.error(error);
manager.stopDeviceScan()
console.log('蓝牙扫描出错了~');
return;
}
console.log(device)
let a = JSON.stringify(device)
console.log(a)
if (device.name === 'Take-73576717') {
console.log('找到设备了,停止扫描,开始连接')
manager.stopDeviceScan()
manager.connectToDevice(device.id).then((device) => {
console.log('连接成功返回的信息', JSON.stringify(device))
})
}
});
}
return (
<View style={styles.container}>
<TouchableOpacity onPress={scanXinHao}>
<Text>扫描信号</Text>
</TouchableOpacity>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
}
});