Skip to content

freemedom/ScreenshotRenamer

Repository files navigation

下面其余部分都是ai生成的

我只测试了安卓10和安卓14,其它版本没有测试,不知道有没有问题。还只是比较粗糙的初步版本。

截图重命名助手 (ScreenshotRenamer)

一个自动监控系统截图并添加应用包名的Android应用。

功能特点

  • 🔍 自动监控: 后台监控系统新增的截图
  • 🏷️ 智能重命名: 自动在截图文件名后添加当前前台应用的包名
  • 📱 简洁界面: 一键开始/停止监控
  • 🔔 通知提醒: 重命名成功后显示详细通知
  • 🔒 权限管理: 完整的权限检查和引导流程

使用示例

原始截图: Screenshot_20240701_081605.jpg 重命名后: Screenshot_20240701_081605_com.duolingo.jpg

权限说明

必需权限

  • 媒体访问权限: 读取系统相册中的截图文件
  • 写入外部存储权限: 修改外部存储文件,兼容Android 10及以下版本(配合requestLegacyExternalStorage使用)
  • 媒体位置权限: 访问媒体文件的位置信息,增强文件处理能力(Android 10+)
  • 外部存储管理权限: 完全管理外部存储文件,提供最高级别的文件访问能力(Android 11+)
  • 媒体管理权限: 直接管理媒体文件,避免每次重命名都需要用户授权(Android 13+)
  • 使用情况访问权限: 获取当前前台应用信息(需在设置中手动开启)
  • 通知权限: 显示重命名成功的通知(Android 13+)

权限使用说明

  1. 首次运行时,应用会自动请求媒体、写入存储、媒体位置和通知权限
  2. 需要手动在系统设置中开启"所有文件访问权限"(推荐,提供最强文件管理能力)
  3. 需要手动在系统设置中开启"媒体管理"权限(推荐,避免每次授权)
  4. 需要手动在系统设置中开启"使用情况访问"权限
  5. 如果没有足够权限,首次重命名时需要用户确认

系统兼容性

  • 最低版本: Android 8.0 (API 26)
  • 目标版本: Android 14 (API 34)
  • 测试覆盖: Android 8.0 - 14
  • Android 10特殊兼容:
    • 使用requestLegacyExternalStorage="true"绕过分区存储限制
    • 配合WRITE_EXTERNAL_STORAGE权限确保文件写入能力
    • 允许应用使用传统的文件系统访问方式

安装和使用

前置要求

  • Android Studio Arctic Fox 或更高版本
  • Kotlin 1.9.0 或更高版本
  • Gradle 8.1.4 或更高版本

编译步骤

  1. 克隆或下载项目代码
  2. 使用 Android Studio 打开项目
  3. 等待 Gradle 同步完成
  4. 连接设备或启动模拟器
  5. 点击运行按钮

使用流程

  1. 安装应用后,首次启动会要求授予必要权限
  2. 点击"开始监控"按钮启动截图监控服务
  3. 使用系统截图功能(如音量键+电源键)
  4. 首次重命名时,系统会发出通知要求授权,点击通知进行授权
  5. 授权后,应用会自动重命名截图并显示成功通知
  6. 可随时点击"停止监控"来停止服务

权限授权说明

  • 首次重命名权限:由于Android 10+的安全限制,首次重命名其他应用创建的文件时,系统会要求用户授权
  • 一次性授权:授权一次后,后续的重命名操作就不需要再次授权
  • 通知引导:当需要授权时,应用会发送高优先级通知,点击通知会打开权限授权界面
  • 透明界面:权限授权使用透明Activity,不会干扰用户当前操作

技术实现

核心技术

  • ContentObserver: 监听 MediaStore 变化,检测新增图片
  • UsageStatsManager: 获取当前前台应用包名
  • MediaStore API: 执行文件重命名操作
  • Foreground Service: 确保后台监控的稳定性

主要组件

  • MainActivity: 主界面和权限管理
  • ScreenshotWatcherService: 后台监控服务
  • ScreenshotUtils: 截图检测和查询工具
  • UsageStatsUtils: 前台应用获取工具

注意事项

兼容性

  • 不同厂商的截图目录可能不同(如三星的 DCIM/Screenshots)
  • Android 14 上 UsageStatsManager 偶尔会有延迟
  • 某些定制系统可能需要额外的权限设置

使用限制

  • 需要用户手动开启"使用情况访问"权限
  • 首次重命名需要用户确认写入权限
  • 后台监控可能受到系统电池优化影响

隐私说明

  • 应用仅读取截图文件名和当前前台应用信息
  • 不会上传或分享任何个人数据
  • 所有操作均在本地设备完成

故障排除

常见问题

  1. 监控不生效: 检查是否已开启所有必需权限
  2. 重命名失败: 确认已授予写入权限,尝试重新截图
  3. 通知不显示: 检查通知权限和系统通知设置
  4. 服务被杀: 在系统设置中将应用加入白名单

调试日志

应用使用标签 ScreenshotWatcher 输出调试信息,可通过 logcat 查看:

adb logcat -s ScreenshotWatcher

开源协议

本项目基于思路文档实现,遵循开放源码原则。

贡献指南

欢迎提交 Issue 和 Pull Request 来改进这个项目!


如有问题或建议,请随时联系开发者。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages