diff --git a/lib/modules/agent/controllers/agent_controller.dart b/lib/modules/agent/controllers/agent_controller.dart index 5f6386cce..5c9a5c683 100644 --- a/lib/modules/agent/controllers/agent_controller.dart +++ b/lib/modules/agent/controllers/agent_controller.dart @@ -706,7 +706,7 @@ class AgentController extends GetxController with WidgetsBindingObserver { // messages.refresh(); } - Get.snackbar('error'.tr, '${event.data['message']}'); + // Get.snackbar('error'.tr, '${event.data['message']}'); Logger.e(TAG, '代理服务错误: ${event.data['message']}'); break; @@ -2084,12 +2084,13 @@ class AgentController extends GetxController with WidgetsBindingObserver { return; } } - + // 5. 最后尝试内置高德导航 + _navigationManager.open(start, "$endlongitude,$endlatitude", mode); // 5. 如果都没有安装,提示用户 - print('未找到可用的导航应用'); - final availableApps = - Platform.isIOS ? '百度地图、高德地图、谷歌地图或苹果地图' : '百度地图、高德地图或谷歌地图'; - Get.snackbar('提示', '未找到可用的导航应用,请安装$availableApps'); + // print('未找到可用的导航应用'); + // final availableApps = + // Platform.isIOS ? '百度地图、高德地图、谷歌地图或苹果地图' : '百度地图、高德地图或谷歌地图'; + // Get.snackbar('提示', '未找到可用的导航应用,请安装$availableApps'); } catch (e) { print('自动选择导航失败: $e'); Get.snackbar('错误', '启动导航失败'); diff --git a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt b/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt index 8fc25365a..630abbdf3 100644 --- a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt +++ b/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/AzureAsrHelper.kt @@ -547,19 +547,20 @@ class AzureAsrHelper(private val context: Context) { Log.e(tag, "启动录音前台服务失败: ${e.message}") } } - - // Initialize if not already done - if (!audioStream.isInitialized()) { - audioStream.initAudioRecord() - } - audioStream.setupStream() if (audioStream.recordfile == null) { audioStream.recordfile = RecordFile() } - + if (!audioStream.isContinuousRecognitionActive) { // 启动音频处理 Log.i(tag, "开启录音:audioSourceType${audioSourceType}") + // Initialize if not already done + if (!audioStream.isInitialized()) { + audioStream.initAudioRecord() + } + audioStream.setupStream() + + audioStream.startAudioRecord( when (audioSourceType) { AudioSourceType.MICROPHONE -> SimpleAudioReceiver.AudioSourceType.MICROPHONE AudioSourceType.EXTERNAL -> SimpleAudioReceiver.AudioSourceType.EXTERNAL @@ -635,7 +636,7 @@ class AzureAsrHelper(private val context: Context) { } Log.i(tag, "关闭录音:") audioStream.recordfile ?: return - + if (!audioStream.isContinuousRecognitionActive) { audioStream.stopMicrophoneCapture() diff --git a/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt b/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt index b85738b1f..5e051d418 100644 --- a/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt +++ b/local_plugins/location_service/android/src/main/kotlin/com/yunqiinnovation/location_service/LocationService.kt @@ -270,13 +270,19 @@ object LocationService { if (!hasForegroundPermission) { return 1 // 前台权限未授予 } - + // 前台权限已授予,再根据前后台状态检查后台权限 if (!isAppInForeground(context)) { - // 应用在后台:Android 10+ 需要检查后台权限 - return 2 // 后台权限未授予 + // 应用在后台:Android 10+ 需要检查后台权限的实际授予状态 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val hasBackgroundPermission = hasBackgroundLocationPermission(context) + if (!hasBackgroundPermission) { + return 2 // 后台权限未授予 + } + } + // Android 9 及以下或已授予后台权限 } - + // 所有所需权限均已授予 return 0 }