前言
被公司同仁問到,就順手整理一下舊筆記…
以下裝置資訊的取得都不需要特殊權限,取得方式也很單純。但在除錯的時候,如果有這類型的資訊輔助,有時候可以抓到一些特定型號才會出現的 bug。
像是之前曾經遇過 Samsung S10e 的 GNSS 時間錯誤問題,經查才發現是 GPS 週數翻轉(GPS Week Number Rollover)導致算出來的時間都是錯的。
也許有人會想,Crashlytics 或 Play Console 不是都有這些裝置資訊嗎?但那些是事後聚合的資料,有些情境還是得自己在 runtime 讀——像上面那種非 crash 的怪 bug 它根本不會幫我們抓到,或是想針對特定機型走不同處理邏輯的時候,這些都得在程式裡自己拿到型號才行。
廠牌
品牌 Build.BRAND 印出的會是我們比較熟悉的品牌名稱,例如 Google 、Samsung 等。
製造商 Build.MANUFACTURER 則會印出實際製造的廠商名稱。
以 Google、Samsung 來說,這兩個值都會是一樣的。
但像是中國手機,就比較容易出現兩個值不同的情況。
例如:小米的子品牌紅米。
| |
製造商
| |
品牌
| |
型號
Build.MODEL 印出的型號並非我們熟悉的產品名稱,而是品牌或製造商根據不同規格與發行地區所設定的型號。
舉例來說,Samsung S25 台灣版本印出的型號會是 SM-S9310。
韓國版本則是 SM-S931N。
| |
系統版本
版本名稱
一般使用者所熟知的 Android 版本名稱,例如 Android 15 、 Android 16。
| |
版本號 API Level
通常是開發者才會知道的 Android 版本號,例如 36 ( Android 16 ) 、 35 ( Android 15)。
| |