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);
2条答案
按热度按时间1tuwyuhd1#
react-native-ble-plx没有这个功能,但是你可以使用react-native-bluetooth-state-manager。它允许你读取当前的蓝牙状态(启用/禁用),并在iOS和Android上打开蓝牙设置页面。甚至可以在Android上启用(和禁用)蓝牙,而无需用户交互,但是你必须在清单中添加
BLUETOOTH_ADMIN
权限。但是我建议你不要在没有用户交互的情况下激活蓝牙,只需检查状态并显示如下消息
使用此应用需要蓝牙。请通过设置激活它
只有在蓝牙启用后才允许使用应用程序的其余部分。如果用户禁用蓝牙,而它突然被激活,他可能会感到困惑。
iswrvxsc2#
现在可以使用react-native-ble-plx打开蓝牙。警报的工作示例: