2011-06-16 44 views
3

我目前使用HTC Wildfire手機的接近傳感器。問題是如果傳感器前面1釐米內有物體,它只會返回一個布爾值。帶增強型接近傳感器的Android手機

所以,我想問問,如果有一個在具有接近傳感器,它能夠返回實際距離值(釐米)市面上的Android手機,而不是一個布爾..

謝謝

+0

這不是一個真正的編程問題 – 2011-06-16 13:29:57

+1

也許......也許不是。但這是一個很好的問題,我也想回答一個問題。爲了編程,不必爲了查看一行代碼是否有效而購買市場上的所有手機。 – 2012-02-17 08:21:05

回答

2

是的,可以從手機表面獲得實際距離。

事實上,所有的硬件傳感器DO都提供這些信息。但不幸的是,Android中定義的傳感器API將接近度定義爲布爾值,即NEAR(1)或FAR(0)。

要從實際距離獲得布爾讀數,將從接近傳感器硬件獲得的距離與閾值進行比較。這通常在傳感器-HAL中完成。

另外一些光/接近傳感器 - 硬件IC本身提供接近布爾值。在這種情況下,閾值可以在硬件中配置。硬件將獲得的每個樣本與內部閾值進行比較,然後報告布爾「鄰近度」。

無論使用何種傳感器硬件,Android(upto v4.1「jelly-bean」)都不會將接近距離參數作爲其傳感器API的一部分公開。可以修改傳感器-HAL或嘗試直接與接近傳感器驅動程序交互(通常是sys-fs條目)。

Light/Proximity sensor on Android的更多詳細信息。

+0

真的很好的解釋! – gtiwari333 2012-10-12 11:25:26