Privacy Policy
詞武林 隱私權政策(Privacy Policy)
最後更新日期:2026 年 10 月 10 日
摘要
詞武林是一款以離線使用為主的高中英文單字學習應用程式。未啟用雲端時,學習紀錄只存於本機,不需註冊或登入,也沒有廣告 SDK。雲端存檔是另行同意的可選功能,詳見下節。
不過有一件事要先講清楚:App 會向外部主機下載高解析度的卡面圖片。這代表提供圖片的主機(Cloudflare)會看到你的 IP 位址,以及你抓了哪幾張卡片的圖——而卡片對應單字,所以理論上可以從中推測你大概在學哪些字。詳見下方「卡面圖片的下載」。未啟用雲端時,你可以用不連網的方式完全避免(功能不受影響,只是圖片解析度較低)。
另外,若你使用「拍照建立段考範圍」,App 會在第一次使用時下載一份文字辨識模型(不含你的資料)。照片本身只在你的手機上處理,不保存、不上傳。詳見下方「拍照建立段考範圍」。
為了知道哪些功能該改進,App 會回傳不含個人識別資訊的使用統計(例如開啟了哪些頁面、玩了哪款小遊戲、在哪一章關卡失敗)。這項功能可以在 App 內「個人 → 使用數據」隨時關閉,關閉後會停止收集,並清除這台裝置上的分析識別碼與尚未送出的暫存;已經送出的匿名統計會依保留期限自動失效,因為那些紀錄對應不到特定的人,我們無法逐筆挑出來刪除。
同一台裝置可建立多個「學習檔案」供不同人分開使用,這些檔案彼此獨立;雲端只上傳明確選擇的檔案,不會自動上傳同機其他人的紀錄。
我們處理哪些資料
未啟用雲端時的本機資料
未啟用雲端且未自行匯出時,以下資料本身只留在你的裝置。(獨立的一件事是:下載卡片圖時,外部主機會從「你抓了哪個檔案」推測出你在看哪個單字——那不是上傳,說明見「卡面圖片的下載」。)
- 學習紀錄(已學習的單字、複習排程狀態、答題統計、個人聯想筆記):僅儲存於裝置本機的應用程式儲存空間(WebView localStorage)。啟用雲端後,只有選定檔案會依下述方式上傳。
- 學習檔案名稱與角色名:你自行輸入的暱稱,用來區分同一台裝置上的不同使用者。可隨時改名或刪除;建議使用暱稱而非真實姓名。
- 學習筆記:每次測驗(章末比武、升階考核、月度大考、備戰診斷)結算後,你可以在「學習歷程」為那一場寫下一段筆記(上限 500 字)。未另行勾選雲端包含筆記時,它只存在這台裝置,可隨時編輯或刪除(單筆刪除,或一次清除整份歷程)。每個學習檔案各自獨立。
- 備份資料:App 提供手動「匯出」功能,將學習紀錄以 JSON 文字複製到剪貼簿,由你自行決定保存位置。匯出後的保管責任在使用者。
- 匯出預設不含學習筆記。學習歷程本身(時間、範圍、分數、能力快照)照樣帶走,但你手寫的筆記只有在你明確勾選「含學習筆記」時才會出現在備份裡。這一格是為了換手機整份搬家而設;日常備份不勾,就不會把自由文字複製到剪貼簿。
- 發音與使用數據的偏好設定:僅存於該台裝置。
至於造句題中你輸入的句子:只存在於當下那一題的畫面上,離開該題即消失——不會寫進存檔、不會隨「匯出」被帶走,當然也不會送出去。
(學習筆記與造句句子的差別在於有沒有讀取端:筆記是寫給你日後在「學習歷程」回看的,所以會存下來,也因此配了可刪除與匯出雙軌;造句的句子沒有任何地方會再讀它,所以乾脆不存。)
可選雲端存檔、換機與鼓勵榜
- 啟用:功能預設關閉;可用版本中仍須明確同意並選擇學習檔案。可使用 Firebase 匿名身分加復原碼,或 Google 登入;匿名身分是可識別的假名帳號,不代表完全無法識別。
- 資料與用途:Google Firebase Authentication 處理 UID、登入憑證,以及 Google 登入提供的基本個人資料(可能含 Email、名稱及頭像)。Cloudflare Workers/D1/R2 處理 UID、檔案暱稱、學習狀態與排程、統計、版本、時間及完整性雜湊,以提供保存與換機。筆記預設不上傳,只有另行勾選才包含;不收 Google 密碼。傳输使用 HTTPS,私有存檔不開放公共網址;這不是端對端加密。
- 復原碼:伺服器只保存雜湊;持有復原碼者能取得帳號,請勿分享。新機成功取回後會輪替;失去裝置、復原碼且未綁 Google 時不能保證找回。可重新產生復原碼或撤銷所有裝置登入。
- 保留:保留最近三個已提交版本及一份輪替週副本,排程分批清理,繁忙時可能延後。衝突/還原副本及待上傳佇列留在本機 IndexedDB;解除安裝或清除網站資料會刪除它們。兩端更新不自動合併。
- 公開排行:另行選擇加入,公開暱稱及自報學習天數,每日結算;小組榜僅限持有效邀請碼加入的成員查看。不公開 Email、UID 或筆記;不屬防作弊比賽,也沒有即時互動。退出排行會刪除該帳號排行與學習日紀錄;小組可另行退出。
榜單分為本週、本季、本學年三種期別,各自歸零重開;不提供累計總量排行,以免較早開始的使用者形成後來者無法追上的排序。 為了算得出季榜與學年榜,只保留這個學年(或這一季,取較早者)以來的學習日紀錄——每人每天一筆,內容只有「哪一天有學習」,不含學了什麼。更早的會自動刪掉。退出排行則立即刪除全部。
- 刪除:App 雲端區可刪除整個雲端帳號;立即封鎖存取與復原並移除公開紀錄,私有版本、週副本與 Firebase 身分由排程分批刪除。尚未完成實際部署負載驗證,不承諾固定清除時限;以管理端驗證完成為準。最小 UID 刪除標記保留以阻止舊憑證重建。暫停同步及刪除本機檔案不會自動刪除雲端;雲端刪除也不清除其他裝置的本機副本。
- 服務提供者:資料可能在使用者所在國家以外處理,依 Google 與 Cloudflare 的基礎設施政策;IP 及必要連線資料用於安全防濫用,復原嘗試的 IP 雜湊計數約三日內輪替清除。不將雲端 UID、復原碼或內容放入 Analytics。
- 協助刪除:無法開啟 App 時,請依網站隱私政策的聯絡方式提出申請;完成身分確認後處理,請勿寄送密碼、登入 token 或復原碼。正式推出前會同步更新商店 Data safety 及帳號刪除網址。
會傳送給第三方的使用統計(可關閉)
我們使用 Google Analytics for Firebase 蒐集匿名的使用行為統計,用途僅限於改進產品。
會傳送:開啟的頁面代號、遊玩的小遊戲代號與是否付費續玩、單次學習的題數與答對數、章末關卡的章號與是否通過、境界階數、系統機制的觸發次數、功能使用次數。2026-09-05 起另加四項(同樣只有數字與固定代號):
- 一局小遊戲的結果:遊戲代號、走的是平面版還是立體版、怎麼結束的(完成/時間到/落敗/中途離開)、答對與答錯次數、最佳連擊、分數、這一局玩了幾秒(取整到 5 秒)。
- 裝置能力與偏好:這台裝置支不支援立體效果、你把「立體版小遊戲」設成哪一個選項、有沒有開「減少動效」。
- 學習進度的數量快照:已學卡片張數、待複習張數、重新學習中的張數、通關章數、遇過幾種題型。只有數量,不含是哪些字。
- 想開局卻被擋下來:遊戲代號、當時的入場費與持有銅錢數。
以及 Firebase 自動蒐集的基本資訊(安裝與啟動事件、裝置機型、作業系統版本、國家、隨機產生的匿名應用程式執行個體 ID)。
不會傳送給 Firebase Analytics:你的姓名或暱稱、學習檔案名稱、你輸入的任何文字(包含造句內容與個人聯想筆記)、你正在學哪些單字、學習紀錄本身、電子郵件、電話、通訊錄、位置、廣告識別碼。我們也不會為你指定任何自訂使用者 ID。
(注意這一段講的是 Firebase Analytics,不是 Firebase Authentication。「你正在學哪些單字」不會進 Firebase,但下載卡片圖時外部圖片主機會看得到——那是另一件事,說明在下一節。)
如何關閉:App 內「個人 → 使用數據」。關閉後立即停止收集,並呼叫 Firebase 的清除機制把這台裝置上的分析識別碼與尚未送出的暫存清掉。要講清楚的是:這個機制清不到已經送出去的紀錄——那些會留到 Google Analytics 的保留期限到期為止。由於統計不帶任何識別碼、且不與雲端帳號串接,那些紀錄本來就對應不到你這個人,因此也無法逐筆刪除。
資料會另外存到我們自己的 Google Cloud 專案(2026-09-05 起):上述統計除了進入 Google Analytics 之外,也會每天匯出一份到我們管理的 BigQuery 專案,供我們自己分析。內容與上面列的完全相同(數字與固定代號,加上 Firebase 自動蒐集的匿名應用程式執行個體 ID),不會因此多收任何東西。那份資料採「沙箱」模式儲存,資料表六十天後自動過期刪除。
Google 對此類資料的處理適用其自身的隱私權政策:<https://policies.google.com/privacy>。
卡面圖片的下載(會連到外部主機)
每個單字都有一張手繪風格的助憶卡面圖。這些圖有兩種版本:
- 低解析度縮圖:直接包在 App 裡,安裝完就有,永遠不需要連網。
- 高解析度大圖:檔案太大,全部包進 App 會超過 Google Play 的安裝檔上限,所以放在外部的圖片主機(Cloudflare Pages),由 App 在你實際看到那張卡的時候才去抓。
下載圖片時,圖片主機會看到什麼
- 你的 IP 位址(任何連網行為都會透露,這是網路運作方式,不是我們額外送的)
- 你抓了哪個圖檔。圖檔名稱對應到單字編號,所以理論上可以從中推測你在學哪些字、以及大致的學習進度。這點我們照實說明,不迴避。
- 請求發生的時間
圖片主機不會看到什麼
- 這是匿名的 HTTP 請求:不帶任何帳號、不帶使用者 ID、不帶 cookie、不帶你的暱稱或學習檔案名稱。
- 圖片請求不帶雲端登入憑證;不以 Firebase UID 串接圖片瀏覽紀錄。
- 你的答題對錯、複習排程、造句內容、個人筆記——這些完全不會出現在請求裡。
抓過就不會再抓
每張圖下載成功後會永久保存在你的裝置上,之後看同一張卡都是讀本機檔案,不會再連網。所以同一張卡最多只會產生一次請求。
不想連網也完全沒問題
如果你在飛航模式、沒有網路,或是我們的圖片主機掛掉,App 會安靜地改用 App 內建的低解析度縮圖,不會跳錯誤訊息、不會卡住。學習流程、答題、複習排程、遊戲、獎勵通通不受影響——圖片載不載得到,跟你的學習進度與分數完全無關。
Cloudflare 對其伺服器日誌(含 IP)的處理適用其自身的隱私權政策:<https://www.cloudflare.com/privacypolicy/>。
拍照建立段考範圍(照片只在手機上辨識)
「拍照建立段考範圍」讓你用相機拍下或從相簿選一頁講義,由 App 找出頁面上有哪些單字,加進段考範圍。
- App 不索取相機權限。拍照由系統相機完成;App 只在手機上辨識所選照片,不保存、不上傳照片與辨識出的原文(用相機拍的照片只在辨識期間暫存於 App 的暫存區,辨識結束即刪除;若過程中 App 被系統中止,殘留的暫存檔會在下次開啟時清除),只留下比對到的單字(存在你的學習檔案裡,和其他學習紀錄相同:未啟用雲端時只在本機;該學習檔案已加入雲端時,會隨存檔同步,自行匯出時也會帶走)。
- 用系統相機拍照時,照片會不會另存到相機 App 或相簿,依你的裝置設定而定,不在本 App 的控制範圍。
- 辨識用的模型在手機上執行,不會把照片或文字送到我們或任何第三方的伺服器。
辨識模型的下載(會連到外部主機)
辨識模型是約 6MB 的檔案,沒有包進 App,而是放在外部的檔案主機(Cloudflare,與卡面圖片同一類服務),由 App 在你第一次使用拍照功能時下載。
- 檔案主機會看到你的 IP 位址、抓了哪個檔案(所有使用者抓的都是同一組固定的模型檔,檔名不含任何個人或學習資訊),以及請求的時間。
- 這是匿名的 HTTP 請求:不帶帳號、使用者 ID、cookie、暱稱或學習檔案名稱,也不帶任何照片或辨識結果。
- 下載後 App 會核對檔案完整性,並永久保存在你的裝置上,之後使用都不再連網;解除安裝或在系統設定「清除資料」時一併刪除。
- 沒有網路或下載失敗時,拍照辨識無法使用,其他功能(包含手動加字到範圍)不受影響。不使用這個功能就不會下載。
App 索取的權限與用途
| 權限 | 用途 | 是否必要 | |---|---|---| | 網路(INTERNET/ACCESS_NETWORK_STATE) | 下載高解析度卡面圖與拍照辨識模型;傳送使用統計;部分雲端語音需連網 | 否,離線仍可正常學習(卡面圖改用內建縮圖) | | 喚醒鎖(WAKE_LOCK) | 分析 SDK 於背景送出資料時短暫使用 | 否 | | 安裝來源(BIND_GET_INSTALL_REFERRER_SERVICE) | Google Play 提供的安裝來源歸因,用於了解使用者從何處得知本 App | 否 | | 音訊設定(MODIFY_AUDIO_SETTINGS) | 單字發音的音量增益(語音引擎原音偏小,需額外拉大才聽得清楚) | 否,關閉「語音」音量即不使用 |
我們主動移除了分析 SDK 預設帶入的廣告識別碼權限(com.google.android.gms.permission.AD_ID), 並在設定中關閉廣告 ID 蒐集——本 App 不投放廣告,也不建立廣告輪廓。
App 不索取麥克風、相機、通訊錄、位置、簡訊等權限;口說跟讀題由你自己跟唸、自行評估,App 不錄音、不辨識你的發音。「拍照建立段考範圍」的拍照由系統相機完成,App 不取得相機權限,說明見上方「拍照建立段考範圍」。
關於音訊設定:這個權限只用來對「單字發音」這一路音訊掛上增益效果, 讓語音引擎偏小的原音變得聽得清楚。它不會讀取、錄製或上傳任何聲音, 也不會改動你裝置的系統音量設定。在〈個人 → 音效設定〉把「語音」拉到最左即完全不使用。
隨 App 散布的第三方資料
單字的 KK/IPA 音標由 CMU Pronouncing Dictionary(卡內基美隆大學,BSD-2-Clause 授權) 機械轉換而得,屬離線的衍生資料。中英釋義的第一版初稿取自開源辭典 ECDICT(現行內容已逐筆改寫, 其中約 3% 因表達空間趨近於零而仍與初稿相同,數字與清單見 docs/legal/third-party-licenses.md); 課綱詞彙表與歷屆試題引自大考中心公開資料;背景音樂與音效取自具商業使用授權的來源。
這些全部是離線資料,不涉及任何連線,也不含、不產生、不傳送任何個人資料。 完整的來源清單與著作權聲明見 App 內〈個人 → 資料來源〉, 以及 docs/legal/third-party-licenses.md。
單字與例句的朗讀使用你裝置上的系統語音服務,App 不隨附任何合成語音檔。 本 App 不會把朗讀文字送到我們的任何伺服器。 但要朗讀的單字或例句會交給你所選的系統語音引擎;部分引擎是雲端合成, 那種情況下文字是否離開裝置由該引擎與你的系統設定決定,不在本 App 的控制範圍。 要完全離線,請在系統設定裡選用已下載離線語音包的引擎。
資料刪除
- 學習筆記:在「統計 → 學習歷程」可單筆刪除,或用「清除全部歷程」一次刪掉整份紀錄與其中的所有筆記。
- 學習紀錄:解除安裝 App 即刪除所有本機學習紀錄(含所有學習檔案);也可在系統設定清除 App 資料,或在 App 內單獨刪除某一個學習檔案。未啟用雲端時沒有伺服器副本;已啟用者須另行刪除雲端帳號,解除安裝不等於刪除雲端。
- 使用統計:在「個人 → 使用數據」關閉即停止收集,並清除這台裝置上的分析識別碼與尚未送出的暫存。已送出的匿名統計會依保留期限自動失效,無法逐筆刪除(原因見上一節)。
- 已下載的卡面圖:存在 App 的資料目錄,解除安裝或在系統設定「清除資料」時一併刪除(刪掉之後 App 會退回內建縮圖,需要時再重新下載)。這些是圖片檔本身,不含任何你的個人資料。
- 拍照辨識模型:存在 App 的資料目錄,解除安裝或在系統設定「清除資料」時一併刪除(之後要用再重新下載)。它是模型檔本身,不含任何你的個人資料。照片與辨識出的原文不會被 App 保存,所以沒有需要刪除的照片;加進範圍的單字是學習檔案的一部分,刪除該學習檔案即刪除本機的這份資料;已加入雲端的,雲端副本依上方「學習紀錄」與雲端一節的方式另行刪除。
- 圖片主機的連線紀錄:圖片主機(Cloudflare)依其自身政策保存伺服器日誌,我們無法代為刪除。由於請求不帶任何識別碼、且不與雲端帳號串接,這些紀錄無法對應到特定的人。若你完全不希望產生這類紀錄,可以讓 App 保持離線使用。
註:若你的裝置開啟了 Android 自動備份,本機學習紀錄可能隨系統備份機制一併備份至你自己的雲端帳號。該備份由裝置作業系統與你的雲端帳號管理,我們無法存取。
兒少隱私
本 App 為高中學生設計,適用對象為 15 歲以上。使用統計不含任何個人識別資訊,且不用於廣告、不做跨 App 或跨網站的行為追蹤、不建立個人化廣告輪廓。若你是未成年人的家長或監護人,可於「個人 → 使用數據」關閉統計功能。
關於卡面圖下載:這項功能不需要也不會建立帳號,請求本身不帶任何識別碼;但如同所有網路連線,圖片主機會取得裝置的 IP 位址(IP 在部分法規下屬於個人資料)。若家長或監護人希望連這一項也避免,讓 App 在離線狀態使用即可——所有學習功能都是完整的,差別只在卡面圖是較低解析度的內建縮圖。
關於拍照辨識模型的下載:同樣不需要帳號、請求不帶任何識別碼,但檔案主機會取得裝置的 IP 位址。家長或監護人若希望避免,不使用「拍照建立段考範圍」即不會產生這項連線。
政策變更
新增涉及網路傳輸或資料處理的功能時,我們會更新本政策並在 App 內明顯告知,且任何新增蒐集都以最小必要為原則。
聯絡方式
對本政策或你的資料有任何疑問,請來信 ench0812@gmail.com。
← 返回詞武林首頁