安装包图标

ylih - 耳机里的人生

记录每副耳机能用多少小时。离线运行,永久保存,注重隐私
新版本 1.1.3
• 仅涉及构建与打包的改动。界面没有任何变化。
耳机迟早会用坏。在那之前,ylih 会回答关于一副耳机唯一真正重要的问题:你用它听了多少个小时?

每次耳机连接,ylih 都会记下时间。每次断开,它也会记下时间。这就是整个想法——正因为一次连接只是两个时间戳,应用根本不需要在后台运行就能完成记录。

记录内容

• 每副实体耳机的总使用时长。耳机报废后,将其退役——总时长就此定格,同款耳机的下一副会以第 2 代的身份从零开始计算,新旧数字永远不会混在一起。
• 每一次连接,永久保存:连接时间、断开时间,以及结束的原因。
• 播放时长(可选):这段连接时间里,有多少是真正在播放音频,这样挂在脖子上就不会被算作在听。
• 每小时成本,只要你填写购买价格。看着这个数字不断下降会很有成就感。

两种追踪模式

仅蓝牙——默认模式。应用不运行任何程序,通知栏中不会出现任何内容,也没有额外的电量消耗,因为 Android 即使在应用关闭时也会将连接事件传递给它。

详细追踪——可选。可记录有线和 USB 耳机,并统计播放时间与连接时间的比例。它需要一条静默的最低优先级通知,因为 Android 只会把有线插拔事件报告给正在运行的应用。这也是这条通知存在的唯一原因。

无论哪种模式,蓝牙耳机都会被追踪。

多年后依然可信的数字

如果一次崩溃或重启悄悄多算了十二个小时,长期的总时长就毫无意义了。因此:

• 因重启或崩溃而未能正常关闭的连接,会在其最后一次已知的心跳时刻关闭,且绝不会晚于手机开机的那一刻。手机关机期间的时间永远不会被计入。
• 如果耳机在重启后仍处于连接状态,应用会开始一段全新的连接,而不是把旧的连接跨过这段间隔硬拉长。
• 连接处于打开状态时会持续发送心跳,因此即使漏掉一次断开事件,造成的误差也是有限的。

从设计上就保证隐私

ylih 没有联网权限。没有账户,没有分析统计,没有广告,也没有追踪。一切都保存在你手机上的本地数据库中——唯一能把它复制到设备之外的,是 Android 自带的备份功能,前提是你开启了它。

设置 → 导出 会把你的全部历史记录写成可读的 JSON 文件,导入 则可以将其恢复,因此换新手机也不会让你丢失自己的数字。

权限

• 附近的设备(蓝牙):用于接收连接事件并读取耳机名称。没有这项权限,蓝牙追踪就完全无法工作。
• 通知:仅用于详细追踪功能的通知。
• 开机自启:用于关闭那些因关机而未能正常上报的连接。

基于 MIT 许可协议开源。

版本

尽管下面提供了 APK 安装包的下载选项,但你应该注意,以这种方式安装将不会收到更新通知,这是一种不太安全的下载方式。 我们建议你安装使用 F-Droid 客户端。

下载 F-Droid
  • 版本 1.1.3 (5) 推荐 更新于 2026-08-14

    arm64-v8a armeabi-v7a x86 x86_64

    该版本需要 Android 6.0 及以上版本。

    此包由原始开发者构建并签名,并保证对应于此源代码 tarball

    权限
    • 查看网络连接
      允许此应用查看网络连接的相关信息,例如哪些网络存在并处于连接状态。
    • 与蓝牙设备配对
      允许此应用查看手机的蓝牙配置,并建立及接受与配对设备的连接。
    • 连接到已配对的蓝牙设备
      允许该应用连接到已配对的蓝牙设备
    • 运行前台服务
      允许此应用使用前台服务。
    • 运行“connectedDevice”类型的前台服务
      允许该应用使用“connectedDevice”类型的前台服务
    • 运行“specialUse”类型的前台服务
      允许该应用使用“specialUse”类型的前台服务
    • 显示通知
      允许该应用显示通知
    • 开机启动
      允许此应用在系统完成引导后立即启动。这样可能会延长开机时间,并因始终运行而降低手机总体运行速度。
    • 防止手机休眠
      允许此应用阻止手机进入休眠状态。
    • it.eldavo.ylih.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION

    下载 APK 3.5 MiB PGP 签名 | 构建日志