fix: 修复启动时三个应用层报错问题

- MediaProjectionManager初始化提前到onCreate开头,避免多个return路径跳过初始化导致后续null
- InputController剪贴板访问添加SecurityException防护,非前台时安全降级而非崩溃
- HuaweiAuthorizationHandler剪贴板访问添加异常捕获,防止ClipboardService拒绝访问
- SocketIO连接错误区分瞬态错误(xhr poll/timeout)和持久错误,瞬态错误降级为WARN
- SocketIO connect方法添加URL格式验证和空值检查
This commit is contained in:
wdvipa
2026-02-15 15:40:55 +08:00
parent 410219f382
commit cdc4606574
4 changed files with 90 additions and 30 deletions

View File

@@ -958,14 +958,22 @@ class HuaweiAuthorizationHandler(
* 尝试输入搜索文本(使用剪贴板粘贴)
*/
private fun tryInputSearchText(searchText: String = "悬浮窗"): Boolean {
Log.d(TAG, "🔍 尝试通过剪贴板粘贴搜索文本")
Log.d(TAG, "尝试通过剪贴板粘贴搜索文本")
try {
// 1. 将"悬浮窗"复制到剪贴板
// 1. Safe clipboard write - may fail if app is not in foreground
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as android.content.ClipboardManager
val clipData = android.content.ClipData.newPlainText("search_text", searchText)
clipboardManager.setPrimaryClip(clipData)
Log.d(TAG, "✅ 已将'${searchText}'复制到剪贴板")
try {
clipboardManager.setPrimaryClip(clipData)
Log.d(TAG, "已将'${searchText}'复制到剪贴板")
} catch (e: SecurityException) {
Log.w(TAG, "剪贴板访问被拒绝(非前台应用): ${e.message}")
return false
} catch (e: Exception) {
Log.w(TAG, "剪贴板操作失败: ${e.message}")
return false
}
// 2. 等待一下确保剪贴板操作完成