From 8a2f4188311ce1dfe9206573c66577313659d0b2 Mon Sep 17 00:00:00 2001 From: "844143714@qq,com" <844143714@qq,com> Date: Tue, 28 Apr 2026 20:41:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=BA=E5=88=B6=E9=80=80=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/print_demo.html | 8 ++++++++ .../com/stand/standapp/AndroidInterface.kt | 10 ++++++++++ .../java/com/stand/standapp/MainActivity.kt | 20 +++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/app/src/main/assets/print_demo.html b/app/src/main/assets/print_demo.html index faafd8f..5715473 100644 --- a/app/src/main/assets/print_demo.html +++ b/app/src/main/assets/print_demo.html @@ -185,6 +185,7 @@ +
@@ -759,6 +760,13 @@ showPttResult("执行强制释放"); } } + + function pttSimulateConflict() { + if (window.android && window.android.simulatePttConflict) { + window.android.simulatePttConflict(); + showPttResult("已触发模拟账号冲突"); + } + } diff --git a/app/src/main/java/com/stand/standapp/AndroidInterface.kt b/app/src/main/java/com/stand/standapp/AndroidInterface.kt index 9b703dd..94efba3 100644 --- a/app/src/main/java/com/stand/standapp/AndroidInterface.kt +++ b/app/src/main/java/com/stand/standapp/AndroidInterface.kt @@ -91,6 +91,16 @@ class AndroidInterface(private val activity: MainActivity) { SendAtUtil.getGroupMemberInfo(gid) } + /** + * 模拟 PTT 账号冲突 (测试用) + */ + @JavascriptInterface + fun simulatePttConflict() { + Handler(Looper.getMainLooper()).post { + MainActivity.showPttConflictDialog() + } + } + /** * PTT 切换群组 */ diff --git a/app/src/main/java/com/stand/standapp/MainActivity.kt b/app/src/main/java/com/stand/standapp/MainActivity.kt index 8259e4a..ca3dd5b 100644 --- a/app/src/main/java/com/stand/standapp/MainActivity.kt +++ b/app/src/main/java/com/stand/standapp/MainActivity.kt @@ -1,5 +1,6 @@ package com.stand.standapp +import android.content.Intent import android.os.Bundle import android.view.KeyEvent import android.view.ViewGroup @@ -58,6 +59,25 @@ class MainActivity : AppCompatActivity() { executeJs("onHardwarePttUp") } } + + @JvmStatic + fun showPttConflictDialog() { + instance?.runOnUiThread { + val ctx = instance ?: return@runOnUiThread + androidx.appcompat.app.AlertDialog.Builder(ctx) + .setTitle("账号冲突") + .setMessage("您的 PTT 账号已在其他设备登录,当前设备已被迫下线。\n请点击确认退出并重新登录。") + .setCancelable(false) + .setPositiveButton("确认") { _, _ -> + val pm = ctx.packageManager + val intent = pm.getLaunchIntentForPackage(ctx.packageName) + intent?.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK) + ctx.startActivity(intent) + android.os.Process.killProcess(android.os.Process.myPid()) + } + .show() + } + } } private var mAgentWeb: AgentWeb? = null