From 5723da8eb1f2d0693c26e7d5c5c57f0e3e546d5e Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Sun, 7 Jun 2026 16:34:26 +0800 Subject: [PATCH] =?UTF-8?q?fix(android):=20=E4=BF=AE=E5=A4=8D=20App=20?= =?UTF-8?q?=E5=86=85=E6=9C=AC=E5=9C=B0=E5=9B=BE=E7=89=87/=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E9=80=89=E6=8B=A9=E6=97=A0=E6=95=88=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - AndroidManifest.xml 补充 READ_MEDIA_IMAGES / READ_MEDIA_VIDEO 权限(Android 13+ 必需) - 将已废弃的 startActivityForResult 替换为 registerForActivityResult(Activity Result API),解决 Android 13+ 文件选择器回调丢失 - 同步更新 versionCode 24 / versionName 1.0.22 --- android-webview-app/APP_CHANGELOG.md | 4 ++++ android-webview-app/app/build.gradle.kts | 4 ++-- .../app/src/main/AndroidManifest.xml | 3 +++ .../main/java/com/cyjai/agent/MainActivity.kt | 23 +++++++++---------- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/android-webview-app/APP_CHANGELOG.md b/android-webview-app/APP_CHANGELOG.md index 085a3f6..929df01 100644 --- a/android-webview-app/APP_CHANGELOG.md +++ b/android-webview-app/APP_CHANGELOG.md @@ -1,5 +1,9 @@ # App 更新说明 +# 1.0.22 +- 修复 Android App 内从本地发送图片/视频无效的问题:补充 Android 13+ 所需的媒体读取权限(`READ_MEDIA_IMAGES` / `READ_MEDIA_VIDEO`) +- 修复 Android App 文件选择器在 Android 13+ 上回调丢失的问题:将已废弃的 `startActivityForResult` 升级为 `registerForActivityResult`(Activity Result API) + # 1.0.21 - 修复 Android App 内手机端展开“对话记录”时仍沿用旧宽度的问题,面板宽度与桌面端对话侧栏保持一致 - 修复 Android App 内对话记录展开面板顶部残留系统栏空白的问题,内容从面板顶端开始显示 diff --git a/android-webview-app/app/build.gradle.kts b/android-webview-app/app/build.gradle.kts index 619424c..82ade6f 100644 --- a/android-webview-app/app/build.gradle.kts +++ b/android-webview-app/app/build.gradle.kts @@ -16,8 +16,8 @@ android { applicationId = "com.cyjai.agent" minSdk = 24 targetSdk = 35 - versionCode = 23 - versionName = "1.0.21" + versionCode = 24 + versionName = "1.0.22" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/android-webview-app/app/src/main/AndroidManifest.xml b/android-webview-app/app/src/main/AndroidManifest.xml index 0af9c4d..e2cbd2d 100644 --- a/android-webview-app/app/src/main/AndroidManifest.xml +++ b/android-webview-app/app/src/main/AndroidManifest.xml @@ -2,6 +2,9 @@ + + + >? = null + private val fileChooserLauncher: ActivityResultLauncher = registerForActivityResult( + ActivityResultContracts.StartActivityForResult() + ) { result -> + val results = WebChromeClient.FileChooserParams.parseResult(result.resultCode, result.data) + filePathCallback?.onReceiveValue(results) + filePathCallback = null + } + @SuppressLint("SetJavaScriptEnabled") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -111,7 +121,7 @@ class MainActivity : AppCompatActivity() { addCategory(Intent.CATEGORY_OPENABLE) type = "*/*" } - startActivityForResult(intent, FILE_CHOOSER_REQUEST_CODE) + fileChooserLauncher.launch(intent) return true } } @@ -136,16 +146,6 @@ class MainActivity : AppCompatActivity() { } } - @Deprecated("Deprecated in Java") - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - if (requestCode != FILE_CHOOSER_REQUEST_CODE) return - - val results = WebChromeClient.FileChooserParams.parseResult(resultCode, data) - filePathCallback?.onReceiveValue(results) - filePathCallback = null - } - override fun onSaveInstanceState(outState: Bundle) { webView.saveState(outState) super.onSaveInstanceState(outState) @@ -300,7 +300,6 @@ class MainActivity : AppCompatActivity() { companion object { private const val HOME_URL = "https://agent.cyjai.com" private const val WEB_ASSET_VERSION = "20260406_4" - private const val FILE_CHOOSER_REQUEST_CODE = 9001 } private fun buildHomeUrl(): String {