ylih - 耳機裡的人生
記錄每副耳機能用多少小時。離線運作、永久保存、注重隱私
新版本 1.1.3
• 僅涉及建置與封裝的變更。畫面沒有任何變化。
耳機遲早會壞。在那之前,ylih 會回答關於一副耳機唯一真正重要的問題:你究竟用了它多少小時?
耳機每次連線,ylih 都會記下時間;每次斷線,也會記下時間。就是這麼簡單——因為一次連線就只是兩個時間戳記,所以應用程式根本不需要在背景持續執行。
它會記錄什麼
• 每副實體耳機的累積時數。耳機壞掉時,將它退役——總時數就此凍結,換上同款新耳機會作為第 2 代重新從零開始,舊的數字永遠不會與新的混在一起。
• 每一次連線都會永久保存:連線時間、斷線時間,以及結束的原因。
• 播放時間(選用):那段連線時間中,實際在播放音訊的比例,讓「掛在脖子上」不會被算作在聽。
• 每小時使用成本,只要輸入購買金額即可。看著這個數字慢慢下降,會很有成就感。
兩種追蹤模式
僅藍牙——預設模式。應用程式不會執行任何東西,通知欄不會出現任何通知,也不會消耗額外電量,因為即使應用程式已關閉,android 仍會將連線事件傳遞給它。
詳細追蹤——選用。加入有線與 USB 耳機,並測量播放時間與連線時間的比例。它需要一則無聲、最低優先度的通知,因為 android 只會將有線插拔事件回報給已在執行中的應用程式,這也是這則通知存在的唯一原因。
無論選擇哪種模式,藍牙都會被追蹤。
多年後仍可信賴的數字
如果一次當機或重新開機悄悄多算了十二小時,長期累積的總時數就毫無意義。因此:
• 因重新開機或當機而未正常結束的連線,會在最後一次已知的心跳時間點結束,絕不會晚於手機開機的那一刻。手機關機期間的時間,永遠不會被計入。
• 如果耳機在重新開機後仍保持連線,會開始一次全新的連線,而不是把舊的連線硬拉長跨越這段空窗期。
• 連線保持開啟時會持續發送心跳,藉此限制漏接一次斷線訊號所造成的誤差。
從架構上就注重隱私
ylih 沒有網路權限。沒有帳號、沒有分析追蹤、沒有廣告,也沒有任何形式的追蹤。所有資料都只存在於你手機上的資料庫中——唯一能將它複製到裝置之外的,是 Android 內建的備份功能,前提是你已啟用。
「設定 → 匯出」會將完整歷史紀錄寫成可讀的 json 檔案,「匯入」則可將其還原,因此換新手機也不會讓你失去這些數字。
權限
• 鄰近裝置(藍牙):接收連線事件並讀取耳機名稱所必需。沒有這項權限,藍牙追蹤將完全無法運作。
• 通知:僅用於詳細追蹤功能的通知。
• 開機時啟動:用於結束那些因關機而從未被回報的連線。
以 MIT 授權開放原始碼。
耳機每次連線,ylih 都會記下時間;每次斷線,也會記下時間。就是這麼簡單——因為一次連線就只是兩個時間戳記,所以應用程式根本不需要在背景持續執行。
它會記錄什麼
• 每副實體耳機的累積時數。耳機壞掉時,將它退役——總時數就此凍結,換上同款新耳機會作為第 2 代重新從零開始,舊的數字永遠不會與新的混在一起。
• 每一次連線都會永久保存:連線時間、斷線時間,以及結束的原因。
• 播放時間(選用):那段連線時間中,實際在播放音訊的比例,讓「掛在脖子上」不會被算作在聽。
• 每小時使用成本,只要輸入購買金額即可。看著這個數字慢慢下降,會很有成就感。
兩種追蹤模式
僅藍牙——預設模式。應用程式不會執行任何東西,通知欄不會出現任何通知,也不會消耗額外電量,因為即使應用程式已關閉,android 仍會將連線事件傳遞給它。
詳細追蹤——選用。加入有線與 USB 耳機,並測量播放時間與連線時間的比例。它需要一則無聲、最低優先度的通知,因為 android 只會將有線插拔事件回報給已在執行中的應用程式,這也是這則通知存在的唯一原因。
無論選擇哪種模式,藍牙都會被追蹤。
多年後仍可信賴的數字
如果一次當機或重新開機悄悄多算了十二小時,長期累積的總時數就毫無意義。因此:
• 因重新開機或當機而未正常結束的連線,會在最後一次已知的心跳時間點結束,絕不會晚於手機開機的那一刻。手機關機期間的時間,永遠不會被計入。
• 如果耳機在重新開機後仍保持連線,會開始一次全新的連線,而不是把舊的連線硬拉長跨越這段空窗期。
• 連線保持開啟時會持續發送心跳,藉此限制漏接一次斷線訊號所造成的誤差。
從架構上就注重隱私
ylih 沒有網路權限。沒有帳號、沒有分析追蹤、沒有廣告,也沒有任何形式的追蹤。所有資料都只存在於你手機上的資料庫中——唯一能將它複製到裝置之外的,是 Android 內建的備份功能,前提是你已啟用。
「設定 → 匯出」會將完整歷史紀錄寫成可讀的 json 檔案,「匯入」則可將其還原,因此換新手機也不會讓你失去這些數字。
權限
• 鄰近裝置(藍牙):接收連線事件並讀取耳機名稱所必需。沒有這項權限,藍牙追蹤將完全無法運作。
• 通知:僅用於詳細追蹤功能的通知。
• 開機時啟動:用於結束那些因關機而從未被回報的連線。
以 MIT 授權開放原始碼。
- 作者: Davide Palma
- 授權條款: MIT License
- 問題追蹤系統
- 原始碼
- 更新紀錄
- 建置詮釋資料
- 可重現建置狀態
版本
雖然在下方可選擇下載 APK 檔案,但要留意這樣的安裝方式將不會收到更新通知,是一種較不安全的下載方法。建議您先安裝 F-Droid 用戶端使用。
下載 F-Droid-
arm64-v8aarmeabi-v7ax86x86_64此版本需要 Android 6.0 或更高的版本。
此套件包由原開發者建置和簽署,並保證與此原始碼 Tarball 保持一致。




