diff --git a/app/src/main/assets/print_demo.html b/app/src/main/assets/print_demo.html index 5715473..92818df 100644 --- a/app/src/main/assets/print_demo.html +++ b/app/src/main/assets/print_demo.html @@ -171,6 +171,15 @@ +
+
+ AT 指令 (十六进制): + +
+
+ +
+
@@ -767,6 +776,18 @@ showPttResult("已触发模拟账号冲突"); } } + + function pttSendAtCmd() { + var cmd = document.getElementById('ptt-at-cmd').value.trim(); + if (!cmd) { + showPttResult("请输入 AT 指令"); + return; + } + if (window.android && window.android.pttSendAtCmd) { + window.android.pttSendAtCmd(cmd); + showPttResult("已发送 AT 指令: " + cmd); + } + } diff --git a/app/src/main/java/com/example/kingway/ptt/SendAtUtil.java b/app/src/main/java/com/example/kingway/ptt/SendAtUtil.java index e25bd09..a39dd1d 100644 --- a/app/src/main/java/com/example/kingway/ptt/SendAtUtil.java +++ b/app/src/main/java/com/example/kingway/ptt/SendAtUtil.java @@ -7,11 +7,22 @@ import timber.log.Timber; * */ public class SendAtUtil { - private static void send(String cmd) { + public static void sendRawCmd(String cmd) { Timber.tag("PTT_TX").i("CMD: %s", cmd); MyApplication.getAppInstance().getpNative().pttNativeSendAtCmd(cmd); } + private static void send(String cmd) { + sendRawCmd(cmd); + } + + /** + * 账号注销接口 + */ + public static void toLogout() { + send("040000\r\n"); + } + /** * 账号登录接口 * account 账号 diff --git a/app/src/main/java/com/stand/standapp/AndroidInterface.kt b/app/src/main/java/com/stand/standapp/AndroidInterface.kt index 94efba3..925e635 100644 --- a/app/src/main/java/com/stand/standapp/AndroidInterface.kt +++ b/app/src/main/java/com/stand/standapp/AndroidInterface.kt @@ -101,6 +101,14 @@ class AndroidInterface(private val activity: MainActivity) { } } + /** + * 发送原始 AT 指令 (调试用) + */ + @JavascriptInterface + fun pttSendAtCmd(cmd: String) { + SendAtUtil.sendRawCmd(cmd) + } + /** * PTT 切换群组 */ diff --git a/app/src/main/java/com/stand/standapp/LoginActivity.kt b/app/src/main/java/com/stand/standapp/LoginActivity.kt index 0394ebb..08ca37f 100644 --- a/app/src/main/java/com/stand/standapp/LoginActivity.kt +++ b/app/src/main/java/com/stand/standapp/LoginActivity.kt @@ -131,15 +131,25 @@ class LoginActivity : AppCompatActivity() { Toast.makeText(this@LoginActivity, "登录成功", Toast.LENGTH_SHORT).show() - // 1. 确保 PTT 引擎已初始化并登录 + // 1. PTT 引擎初始化并异步登录 (避免阻塞 UI) try { - // 确保 PTT 引擎已初始化 com.example.kingway.ptt.MyApplication.init(this@LoginActivity) - // 异步初始化 PTT 登录 (区分 Android 业务登录) - com.example.kingway.ptt.SendAtUtil.toLogin("gzzdweb01", "123456", "61.243.1.123", 1, 1) + com.example.kingway.ptt.SendAtUtil.toLogout() } catch (e: Exception) { Timber.tag("PTT").e(e, "PTT init error") } + Thread { + try { + Thread.sleep(500) + runOnUiThread { + Toast.makeText(this@LoginActivity, "PTT初始化中", Toast.LENGTH_SHORT).show() + } + Thread.sleep(1500) + com.example.kingway.ptt.SendAtUtil.toLogin("gzzdweb01", "123456", "61.243.1.123", 1, 1) + } catch (e: Exception) { + Timber.tag("PTT").e(e, "PTT login error") + } + }.start() // 2. 启动硬件 GPIO 监听 try {