diff --git a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt index 7a197c6..91f1668 100644 --- a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt @@ -207,10 +207,15 @@ class ListenActivity : AppCompatActivity() { sendBroadcast(Intent(Constant.WEWORK_NOTIFY).apply { putExtra("type", "modify_channel") }) - runCatching { - WeworkController.weworkService.reconnectWebSocket("modify_channel_direct") - }.onFailure { - LogUtils.w("重置后直连重连失败,等待广播触发: ${it.message}") + if (WeworkController.isServiceReady()) { + runCatching { + WeworkController.weworkService.reconnectWebSocket("modify_channel_direct") + }.onFailure { + LogUtils.w("重置后直连重连失败,等待广播触发: ${it.message}") + } + } else { + ToastUtils.showLong("无障碍服务未运行,请先开启后再重置") + LogUtils.w("重置时服务未就绪,无法触发直连重连") } HttpUtil.getMyConfig(toast = false) MobclickAgent.onProfileSignIn(channel) diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt index c5380c3..463a1ab 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt @@ -17,6 +17,8 @@ object WeworkController { /** 是否正在等待回复 - 等待时会暂停主循环扫描新消息 */ var waitingForReply = false + fun isServiceReady(): Boolean = ::weworkService.isInitialized + /** * 交互通知 * @see WeworkMessageBean.TYPE_CONSOLE_TOAST diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkService.kt b/app/src/main/java/org/yameida/worktool/service/WeworkService.kt index 652bf51..c3738a0 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkService.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkService.kt @@ -123,9 +123,7 @@ class WeworkService : AccessibilityService() { inner class EchoWebSocketListener : WebSocketListener() { private val TAG = "WeworkService.EchoWebSocketListener" - private lateinit var socket: WebSocket override fun onOpen(webSocket: WebSocket, response: Response) { - socket = webSocket Log.e(TAG, "连接建立") val robotId = Constant.robotId val appVersion = SPUtils.getInstance().getString("appVersion", "") @@ -157,14 +155,14 @@ class WeworkService : AccessibilityService() { override fun onClosing(webSocket: WebSocket, code: Int, reason: String) { super.onClosing(webSocket, code, reason) - socket.close(code, reason) + webSocket.close(code, reason) Log.e(TAG, "服务端关闭连接 $code: $reason") sendBroadcast(false) } override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) { //服务器中断 - Log.e(TAG, "连接错误: " + t.toString() + response.toString()) + Log.e(TAG, "连接错误: ${t.message} response=${response?.code}") sendBroadcast(false) }