|
|
|
@ -179,13 +179,24 @@ class PairingController extends GetxController { |
|
|
|
Logger.i(_tag, '开始执行初始化流程'); |
|
|
|
|
|
|
|
isLoading.value = true; |
|
|
|
statusDescription.value = '正在检查权限...'; |
|
|
|
statusDescription.value = '正在初始化...'; |
|
|
|
|
|
|
|
try { |
|
|
|
// 初始视觉反馈延迟 |
|
|
|
await Future.delayed(const Duration(milliseconds: 800)); |
|
|
|
|
|
|
|
// 更新状态让用户知道正在进行权限检查 |
|
|
|
statusDescription.value = '正在检查所需权限...'; |
|
|
|
|
|
|
|
// iOS平台跳过权限检查 |
|
|
|
if (!Platform.isIOS) { |
|
|
|
// 添加额外视觉反馈延迟 |
|
|
|
await Future.delayed(const Duration(milliseconds: 600)); |
|
|
|
|
|
|
|
final hasPermission = await _checkAndRequestPermissions(); |
|
|
|
if (!hasPermission) { |
|
|
|
statusDescription.value = '缺少必要的权限'; |
|
|
|
await Future.delayed(const Duration(milliseconds: 500)); |
|
|
|
_transition(PairingState.exitNoPermission); |
|
|
|
return; |
|
|
|
} |
|
|
|
@ -194,6 +205,10 @@ class PairingController extends GetxController { |
|
|
|
// 设置蓝牙状态监听 |
|
|
|
_setupBluetoothListener(); |
|
|
|
|
|
|
|
// 更新状态让用户知道正在进行蓝牙检查 |
|
|
|
statusDescription.value = '检查蓝牙状态...'; |
|
|
|
await Future.delayed(const Duration(milliseconds: 400)); |
|
|
|
|
|
|
|
// 检查蓝牙状态 |
|
|
|
final btState = BluetoothManager.to.bluetoothState; |
|
|
|
Logger.i(_tag, '当前蓝牙状态: $btState'); |
|
|
|
@ -201,10 +216,14 @@ class PairingController extends GetxController { |
|
|
|
if (btState == 'on' || btState == 'unknown') { |
|
|
|
_transition(PairingState.btReady); |
|
|
|
} else { |
|
|
|
statusDescription.value = '蓝牙未开启'; |
|
|
|
await Future.delayed(const Duration(milliseconds: 500)); |
|
|
|
_transition(PairingState.exitBtOff); |
|
|
|
} |
|
|
|
} catch (e) { |
|
|
|
Logger.e(_tag, 'Init failed: $e'); |
|
|
|
statusDescription.value = '初始化出错'; |
|
|
|
await Future.delayed(const Duration(milliseconds: 500)); |
|
|
|
_transition(PairingState.exitNoPermission); |
|
|
|
} finally { |
|
|
|
isLoading.value = false; |
|
|
|
|