我在嘗試編寫一個使用設備傳感器檢測自由落體情況的android代碼。 我在網上搜索了很多關於這個問題的解決方案,但是我找不到任何有用的東西。 我確實看到有幾個應用程序可以完全做到這一點,所以有可能,但我沒有找到任何代碼示例或教程來了解如何做到這一點。 任何人都可以請幫我一個代碼片段,甚至使用傳感器數據的數學計算?如何在android中檢測自由落體
在此先感謝
我在嘗試編寫一個使用設備傳感器檢測自由落體情況的android代碼。 我在網上搜索了很多關於這個問題的解決方案,但是我找不到任何有用的東西。 我確實看到有幾個應用程序可以完全做到這一點,所以有可能,但我沒有找到任何代碼示例或教程來了解如何做到這一點。 任何人都可以請幫我一個代碼片段,甚至使用傳感器數據的數學計算?如何在android中檢測自由落體
在此先感謝
退房這裏的API SensorEvent Values背後自由落體這裏Wikipedia數學。
您正在嘗試檢測某個方向的速度。看看維基百科上的運動方程。您正在檢測隨着設備的陀螺旋轉而歸一化的隨時間的加速度。
從我讀過,加速度計通常測量重力。因此,如果您處於自由落體狀態且設備沒有橫向移動,則所有加速度計讀數應爲零。 (免責聲明:我沒有寫任何加速度計代碼。)
如果TYPE_ACCELEROMETER
給出的向量長度大約爲零,則設備處於自由落體狀態。從理論上講,它應該完全爲零,實際上它只能接近於零。因此,您需要通過反覆試驗來設定一些閾值,並且如果該矢量的長度低於此閾值,則聲明該設備處於自由落體狀態。
Google佛羅里達州立大學的一個小組的iFall項目。已經發表了一篇論文,描述了他們爲Android iFall應用程序所採用的方法,該方法爲進一步/擴展研究提供了大量參考資料。他們也有一個可用的API,並解釋如何使用它,如果你想要一個快捷方式。 (要使用他們的API,我相信你只需要從Play Store下載並安裝他們的iFall應用)