Browse Source

fix(pairing): 修复iOS平台打开蓝牙设置的问题

使用url_launcher直接打开系统设置,失败时回退到指导对话框
newdev_shunjiawei
lxm 1 year ago
parent
commit
05e1aab8e5
  1. 11
      lib/modules/pairing/controllers/pairing_controller.dart

11
lib/modules/pairing/controllers/pairing_controller.dart

@ -8,6 +8,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'dart:async'; import 'dart:async';
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:url_launcher/url_launcher.dart';
import '../../../routes/app_routes.dart'; import '../../../routes/app_routes.dart';
import '../../../core/utils/logger.dart'; import '../../../core/utils/logger.dart';
import 'dart:io'; import 'dart:io';
@ -1131,8 +1132,14 @@ class PairingController extends GetxController with WidgetsBindingObserver {
/// 打开蓝牙设置 - 简化版本 /// 打开蓝牙设置 - 简化版本
void _openBluetoothSettings() async { void _openBluetoothSettings() async {
if (Platform.isIOS) { if (Platform.isIOS) {
// iOS平台:直接显示用户指导对话框 const url = 'App-Prefs:';
_showBluetoothGuideDialog(); //拉起iOS系统设置app到前台,使用旧接口生效
if (await canLaunch(url)) {
await launch(url);
} else {
// 如果无法直接打开,回退到显示指导对话框
_showBluetoothGuideDialog();
}
} else { } else {
// Android平台使用原有方式 // Android平台使用原有方式
AppSettings.openAppSettings(type: AppSettingsType.bluetooth); AppSettings.openAppSettings(type: AppSettingsType.bluetooth);

Loading…
Cancel
Save