From 382a598e872774e66bb116952603af0f47795d97 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Mon, 29 Sep 2025 20:57:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BF=AE=E5=A4=8D=E8=BF=98?= =?UTF-8?q?=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...kotlin-compiler-2007526241707140332.salive | 0 .../agent_service/AgentService.kt | 2 +- .../chat_api/SystemFunctionHandler.swift | 25 +++++++------------ .../qq_music/QQMusicSingleton.kt | 15 ++++++----- 4 files changed, 17 insertions(+), 25 deletions(-) create mode 100644 android/.kotlin/sessions/kotlin-compiler-2007526241707140332.salive diff --git a/android/.kotlin/sessions/kotlin-compiler-2007526241707140332.salive b/android/.kotlin/sessions/kotlin-compiler-2007526241707140332.salive new file mode 100644 index 000000000..e69de29bb diff --git a/local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt b/local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt index 8ea45fded..9813f425d 100644 --- a/local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt +++ b/local_plugins/agent_service/android/src/main/kotlin/com/yunqiinnovation/agent_service/AgentService.kt @@ -1965,7 +1965,7 @@ object AgentService : CoroutineScope { ) } if (playlist.isNotEmpty()) { -// processQQMusicPlayList(playlist) + processQQMusicPlayList(playlist) } else { Log.w(TAG, "qqmusic_searchandplay_songs 中没有有效的音乐条目") } diff --git a/local_plugins/chat_api/ios/chat_api/Sources/chat_api/SystemFunctionHandler.swift b/local_plugins/chat_api/ios/chat_api/Sources/chat_api/SystemFunctionHandler.swift index 5e13cf25b..9dfda89a8 100644 --- a/local_plugins/chat_api/ios/chat_api/Sources/chat_api/SystemFunctionHandler.swift +++ b/local_plugins/chat_api/ios/chat_api/Sources/chat_api/SystemFunctionHandler.swift @@ -206,18 +206,18 @@ public class SystemFunctionHandler: NSObject { let parameters: [String: Any] = [ "type": "object", "properties": [ - "phone_number": [ + "contact": [ "type": "string", - "description": "要拨打的电话号码" + "description": "联系人姓名或电话号码" ] ], - "required": ["phone_number"] + "required": ["contact"] ] let handler = MakePhoneCallHandler() _ = client.registerLocalFunction( name: "make_phone_call", - description: "拨打指定电话号码", + description: "拨打电话", parameters: parameters, handler: handler ) @@ -693,25 +693,18 @@ private class SendTextMessageHandler: NSObject, FunctionHandler, MFMessageCompos /// 拨打电话处理器 private class MakePhoneCallHandler: FunctionHandler { func handle(arguments: [String: Any]) async throws -> String { - guard let phoneNumber = arguments["phone_number"] as? String else { - throw ChatApiException("缺少电话号码参数") + guard let contact = arguments["contact"] as? String else { + throw ChatApiException("缺少联系人参数") } - let result = await makePhoneCall(phoneNumber: phoneNumber) + let result = await makePhoneCall(contact: contact) return "{\"result\": \"\(result.message)\"}" } - private func makePhoneCall(phoneNumber: String) async -> Result { - // 清理电话号码,移除空格和特殊字符 - let cleanedNumber = phoneNumber.replacingOccurrences(of: " ", with: "") - .replacingOccurrences(of: "-", with: "") - .replacingOccurrences(of: "(", with: "") - .replacingOccurrences(of: ")", with: "") - - guard let url = URL(string: "tel:\(cleanedNumber)") else { + private func makePhoneCall(contact: String) async -> Result { + guard let url = URL(string: "tel:\(contact)") else { return Result(success: false, message: "无法创建电话URL") } - return await withCheckedContinuation { continuation in DispatchQueue.main.async { if UIApplication.shared.canOpenURL(url) { diff --git a/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicSingleton.kt b/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicSingleton.kt index 82117e361..f0fee9144 100644 --- a/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicSingleton.kt +++ b/local_plugins/qq_music/android/src/main/kotlin/com/yunqiinnovation/qq_music/QQMusicSingleton.kt @@ -558,20 +558,19 @@ class QQMusicSingleton private constructor() { action(musicManager!!, object : QQMusicManager.PlayCallback { override fun onSuccess() { Log.d(TAG, "${actionName}成功") - checkPlaybackStateOnError(actionName, 0, "Success", callback) -// handler.post { -// callback(Result.success(Unit)) -// } + handler.post { + callback(Result.success(Unit)) + } } override fun onError(errorCode: Int, errorMessage: String) { -// if (allagain > 0 && curragain < allagain){ //重试机制 -// executePlaybackAction(actionName,curragain+1,allagain,action)(callback) -// }else{ + if (allagain > 0 && curragain < allagain){ //重试机制 + executePlaybackAction(actionName,curragain+1,allagain,action)(callback) + }else{ //播放失败时,检查当前播放状态 Log.d(TAG, "${actionName}失败,检查当前播放状态: $errorCode $errorMessage") checkPlaybackStateOnError(actionName, errorCode, errorMessage, callback) -// } + } } }) }