Repository navigation
v2.0.0
分享入口的又一次扩展:多文件分享可以带上整棵目录树;纯文本和无法识别的调用不再只是“落个 .txt”,还能原样转发给别的应用;顺手修掉 .ini 被存成 .ini.txt 的问题。因为新增了文件夹分享和转发能力,按语义化版本升到 2.0.0。
Added
- 文件夹分享:
ACTION_SEND/ACTION_SEND_MULTIPLE中的目录/树 URI 会递归展开;Android 10+ 用MediaStore的RELATIVE_PATH保留Download/<根目录>/<子目录>/...,Android 7–9 在 SAF 目标目录里逐级createDocument(..., MIME_TYPE_DIR, ...)。不新增 manifest 权限,依赖来源 Provider 的目录/子项授权;空文件夹不复制。 - 纯文本/未知请求的“发送”:文本模式和多文件以外的未知兜底现在启用发送按钮,直接把来源
Intent复制到 chooser,不在应用里重新编码内容;仅在有ClipData/EXTRA_STREAM时补FLAG_GRANT_READ_URI_PERMISSION。 - 未知请求兜底:没有可读文件/文本的分享或非
ACTION_MAIN调用,生成Intent.toUri(URI_INTENT_SCHEME)原始转储并保存为.txt,同时保留原 Intent 供转发。
Changed
- 纯文本模式:保存为 UTF-8 无 BOM
.txt,不规范化换行(CRLF/CR/LF 原样);默认名仍是本地时区YYYYMMDD_hhmmss。发送不再禁用。 - 多文件 UI:列表显示相对路径(如
share-root/sub/b.txt),保存时按multiPaths创建/复用子目录。 - 版本号:
versionName2.0.0,versionCode最低 15(覆盖 v1.6.0 的 14)。 - 测试:新增 debug-only
TestFolderProvider与folderShare_preservesNestedStructure,覆盖文件夹递归展开和 MediaStore 相对路径;未知分享/畸形EXTRA_STREAM用例同步到新兜底行为。JVM 单测 85 条,API 36 instrumentation 14 条。
Fixed
- 保存
.ini等非标准扩展名时被追加.txt:当分享方把文件报成text/plain、而 Android 的 MIME 表里text/plain只对应txt时,MediaStore 会把desktop.ini保存成desktop.ini.txt。保存时若源 MIME 的规范扩展名与当前扩展名冲突,改用扩展名推断的 MIME(推断不到则application/octet-stream),单文件和多文件共用该规则,保留原扩展名。
本包已签名,证书 SHA-256: 3682cce6d8fbf859b9b0a90ef8818acc747c82bb5f9d97418a4e6749cb6ccaca
校验安装包完整性: sha256sum -c SHA256SUMS.txt