我的移动应用程序具有打开移动设备蓝牙并在屏幕上显示蓝牙设备列表的功能。我正在使用react-native-ble-plx lib来实现此功能。我需要使用react-native-ble-plx lib打开移动设备的BLE。该库中有任何方法可以打开 BLE?
编辑:此处建议的react-native-bluetooth-state-manager自2023年起存档。请参阅@cyberdevnet的答案以获取使用react-native-ble-plx的解决方案
原答案:
react-native-ble-plx 没有此功能,但您可以使用 react-native-bluetooth-state-manager。它允许您读取当前的蓝牙状态(启用/禁用)并打开 iOS 和 Android 上的蓝牙设置页面。甚至可以在 Android 上启用(和禁用)蓝牙,无需用户交互,但您必须将
BLUETOOTH_ADMIN
权限添加到清单中。
但我建议您不要在没有用户交互的情况下激活蓝牙。只需检查状态并显示类似
的消息使用此应用程序需要蓝牙。请通过您的设置激活它
仅允许在启用蓝牙后使用应用程序的其余部分。如果用户停用蓝牙并且突然激活蓝牙,用户可能会感到困惑。
现在可以使用react-native-ble-plx打开蓝牙。 使用警报的工作示例:
const subscription = BLTManager.onStateChange((state) => { // check if device bluetooth is powered on, if not alert to enable it!
if (state === 'PoweredOff') {
Alert.alert('"App" would like to use Bluetooth.', 'This app uses Bluetooth to connect to and share information with your .....', [
{
text: "Don't allow",
onPress: () => console.log('Cancel Pressed'),
style: 'cancel',
},
{ text: "Turn ON", onPress: () => { BLTManager.enable(); scanDevices() } },
]);
subscription.remove();
}
}, true);