更新ios蓝牙开关检测判定
This commit is contained in:
@@ -5,16 +5,28 @@ class BluetoothHelper {
|
|||||||
static StreamSubscription<BluetoothAdapterState>? _subscription;
|
static StreamSubscription<BluetoothAdapterState>? _subscription;
|
||||||
|
|
||||||
/// 获取当前蓝牙是否开启(跨平台封装)
|
/// 获取当前蓝牙是否开启(跨平台封装)
|
||||||
static Future<bool> isBluetoothOn({Duration timeout = const Duration(seconds: 2)}) async {
|
// static Future<bool> isBluetoothOn({Duration timeout = const Duration(seconds: 2)}) async {
|
||||||
// 先尝试直接获取(Android 上几乎即时可用)
|
// // 先尝试直接获取(Android 上几乎即时可用)
|
||||||
bool directCheck = await FlutterBluePlus.isOn;
|
// bool directCheck = await FlutterBluePlus.isOn;
|
||||||
if (directCheck) return true;
|
// if (directCheck) return true;
|
||||||
|
|
||||||
// iOS 上有初始化延迟,用 adapterState.first 再确认一次
|
// // iOS 上有初始化延迟,用 adapterState.first 再确认一次
|
||||||
|
// try {
|
||||||
|
// BluetoothAdapterState state = await FlutterBluePlus.adapterState
|
||||||
|
// .firstWhere((s) => s != BluetoothAdapterState.unknown,
|
||||||
|
// orElse: () => BluetoothAdapterState.unknown)
|
||||||
|
// .timeout(timeout);
|
||||||
|
|
||||||
|
// return state == BluetoothAdapterState.on;
|
||||||
|
// } catch (_) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
static Future<bool> isBluetoothOn(
|
||||||
|
{Duration timeout = const Duration(seconds: 2)}) async {
|
||||||
try {
|
try {
|
||||||
BluetoothAdapterState state = await FlutterBluePlus.adapterState
|
BluetoothAdapterState state = await FlutterBluePlus.adapterState
|
||||||
.firstWhere((s) => s != BluetoothAdapterState.unknown,
|
.firstWhere((s) => s != BluetoothAdapterState.unknown)
|
||||||
orElse: () => BluetoothAdapterState.unknown)
|
|
||||||
.timeout(timeout);
|
.timeout(timeout);
|
||||||
|
|
||||||
return state == BluetoothAdapterState.on;
|
return state == BluetoothAdapterState.on;
|
||||||
|
|||||||
Reference in New Issue
Block a user