ByteScope

Phone Sensor Test

陀螺儀是不是在飄?指南針為什麼一直亂轉?GPS 到底準不準?用手機打開這一頁,加速度計、陀螺儀、指南針、GPS、震動馬達一張卡片一張卡片測,還有手機水平儀和瀏覽器實際給的取樣率。iPhone、Android 都行,不用裝任何東西,什麼都不上傳。

讀值和位置都只留在這個分頁,不會傳到任何地方。

也想測觸控螢幕? 前往觸控測試 →

加速度計

檢查中…

檢查中…

水平儀

檢查中…

檢查中…

陀螺儀

檢查中…

檢查中…

指南針

檢查中…

檢查中…

GPS

檢查中…

檢查中…

震動

檢查中…

螢幕方向

檢查中…

轉了手機卻沒變化?多半是開了螢幕旋轉鎖定,到快速設定或控制中心看看。

測試報告

各卡片的狀態、判讀和取樣率。不含座標、高度、速度,也不含原始讀值。

瀏覽器支援

還沒用真的手機逐一測過:? 代表沒測過,不是不支援。最後一欄是這個瀏覽器現在給的。

功能Chrome AndroidSamsung InternetSafari iOSFirefox Android這個瀏覽器
加速度計/陀螺儀沒測過沒測過沒測過需要授權沒測過…
指南針(絕對方位)沒測過沒測過沒測過webkitCompassHeading沒測過…
GPS沒測過沒測過沒測過沒測過…
震動沒測過沒測過不行沒測過…

關於這個工具

現在的手機都有加速度計、陀螺儀、磁力計和 GPS 接收器,瀏覽器透過 DeviceMotionEvent、DeviceOrientationEvent 和 watchPosition 這幾個標準 Web API 就能讀到它們。這一頁把這些讀值變成一個不用裝 app 的手機感測器測試——不管你要做的是陀螺儀測試、震動測試還是查 GPS 定位精度:每個感測器一張卡片、各自有開始按鈕,數值用等寬字加單位顯示,附最近幾秒的小圖,還有瀏覽器實際交給網頁的取樣率。它適合這些時刻:地圖的方向老是指錯、賽車遊戲的畫面自己在飄、導航的位置跳來跳去,或是買二手機之前想先檢查一輪。整個過程都在手機裡完成,座標、讀值、報告都不會離開瀏覽器。

每張卡片測什麼

加速度計卡片顯示含重力與不含重力兩組 x、y、z,以及瀏覽器回報的 interval。手機靜止平放在桌上時,重力向量的長度應該接近 9.81 m/s²,偏差超過參考門檻會標成「建議檢查」,絕不會寫成「壞了」。水平儀用同一組重力向量算出俯仰與翻滾角度,有一顆「以目前姿勢歸零」按鈕,讓你拿一個信得過的平面當基準。陀螺儀卡片顯示三軸角速度,另外有「平放 5 秒」的量測,算出靜止時的偏移(bias)和雜訊——偏移大,就是手機沒動、AR 和遊戲畫面卻一直飄的原因。指南針卡片把補償過螢幕旋轉的磁北方位畫在羅盤上,有回報的話也會顯示平台給的精度,再附一張靜態的 8 字形校正圖。GPS 卡片顯示緯度、經度、水平精度(公尺)、高度、速度、方向、首次定位時間,以及精度隨時間變化的曲線。震動卡片可以觸發幾組預設節奏,也可以自己輸入。最後還有一張小小的螢幕方向卡片。

五秒靜止測試和四種判讀

加速度計和陀螺儀都有一個很短的量測:把手機放下、等一下就好。結果只會是四種之一。「正常」表示平均值落在參考門檻內。「建議檢查」表示靜止值偏掉了——重力讀值離 9.81 m/s² 太遠,或是陀螺儀偏移超過 1 °/s——感測器可能需要校正。「移動中」表示讀值變動太大、沒辦法判斷,幾乎都是因為手機被拿起來或桌子被碰到,再測一次就好。「樣本不足」表示那段時間瀏覽器給的讀值不到十筆,分頁被節流或是權限太晚才允許時會這樣。門檻值(重力 ±0.5 m/s²、陀螺儀偏移 1 °/s)是保守選的參考值,不是原廠規格。

這一頁告訴不了你的事

畫面上的取樣率是瀏覽器給網頁的頻率,常常比感測器本身能跑的低,所以它描述的是你的瀏覽器,不是硬體。指南針其實是磁力計,手機殼和車用支架裡的磁鐵、附近的金屬、喇叭都會把它帶偏;方位不對多半是干擾,不是感測器壞了。指南針顯示的是磁北,跟真北差一個當地的磁偏角。GPS 在室內或高樓之間,任何手機的精度都很差,而且瀏覽器可能改用 Wi-Fi 或基地台定位,這時精度欄位會出現大很多的數字。iPhone 上所有瀏覽器都沒有震動 API,那張卡片在 iPhone 上跑不起來。而上面那些判讀只是拿讀值對照參考門檻的簡單結果:這一頁不診斷硬體故障,也不會跟你說哪個零件壞了。

用電腦打開的話

大多數筆電和桌機沒有動作感測器,所以用電腦打開這一頁時會顯示網址和一個 QR code,讓你用手機掃描接著測;卡片還是留在下面,每一張在測什麼都讀得到。GPS 在筆電上有時仍能靠 Wi-Fi 定位拿到位置,精度通常是幾十到幾百公尺。

你的位置留在手機裡

這裡沒有地圖,因為畫地圖就得把座標送給圖磚伺服器。座標預設只顯示到小數點後三位(大約 100 公尺),要看六位得自己按一下。「複製報告」產生的內容只有各項判讀、取樣率、定位次數、首次定位時間和精度數字,永遠不包含緯度、經度、高度、速度與方向,也不會送到任何地方。分析事件只記錄哪張卡片被啟動,不記錄任何讀值。

常見問題

為什麼 iPhone 會問我要不要允許動作感測器?

從 iOS 13 開始,Safari 只在網頁用 DeviceMotionEvent.requestPermission() 提出請求之後才給動作與方向的讀值,而且這個呼叫只能在點按的當下發出。所以加速度計、水平儀、陀螺儀和指南針卡片會先出現一顆「允許讀取動作感測器」按鈕,按一次就涵蓋四張卡片。如果你按了「不允許」,先把分頁關掉再重新打開這一頁;還是不行的話,到 iPhone 的「設定」裡找 Safari,檢查動作與方向存取的開關——確切位置會因 iOS 版本而不同。

為什麼 iPhone 不能測震動?

因為 iOS 的 Safari 沒有實作震動 API(navigator.vibrate),iPhone 上的其他瀏覽器也一樣沒有。卡片會直接把這件事寫出來,而不是假裝在震,所以在這裡沒反應不代表震動馬達壞了。Android 的瀏覽器大多支援,不過網頁在背景、或是系統設定裡關掉震動時,瀏覽器會拒絕。

指南針不準,要怎麼校正?

先排除最常見的原因:把手機從有磁扣或磁環的手機殼拿出來,離開喇叭、筆電和車用支架,也離大型金屬遠一點。然後把手機拿起來畫幾次 8 字形,讓它轉過每一個軸——卡片上有一張靜態示意圖。看著回報的精度慢慢變好就對了。另外記得顯示的是磁北不是真北,跟地圖固定差個幾度是當地的磁偏角,不是誤差。

這一頁會記錄我的位置嗎?

不會。你的座標只留在這一頁裡,不會送到任何地方——沒有地圖、沒有圖磚請求、沒有紀錄。座標預設顯示到小數點後三位(約 100 公尺),要不要看完整精度由你決定。複製出來的報告刻意拿掉了緯度、經度、高度、速度和方向,只留下精度數字、定位次數和時間。分析事件只記錄 GPS 卡片有被啟動,不記錄任何數值。

跟 Web ADB 的感測器頁差在哪?

Web ADB 的感測器工具是透過 USB 線和 ADB 從電腦讀 Android 手機的感測器,需要開啟開發者模式,換來的是系統看得到的完整感測器清單。這一頁則是在手機自己的瀏覽器裡用 Web API 讀,所以 iPhone 和 Android 都能用,不用線、不用開發者模式,但只看得到瀏覽器願意開放的部分。想深入檢查一支 Android 裝置就用那一頁;只是想測手上這支手機,用這一頁就夠了。

為什麼取樣率比手機感測器的規格低?

因為 devicemotion 事件多久送一次給網頁是瀏覽器決定的,而這個頻率常常比感測器本身能跑的低。分頁在背景或手機在省電時,瀏覽器還會再降。所以每張卡片上的數字是「這個瀏覽器實際給網頁多少」的實測,對寫網頁 app 的人很有用,但它不是硬體規格。

用筆電或桌機能測嗎?

可以打開,頁面會給你一個 QR code 讓你改用手機繼續,但大多數電腦沒有加速度計、陀螺儀和指南針,那幾張卡片會顯示這台裝置沒有給出讀值。GPS 有可能透過 Wi-Fi 定位回傳一個精度範圍很大的位置,震動卡片則會顯示這個瀏覽器沒有震動 API。