![](/img/trans.png)
[英]I'm trying to get light sensor data from an Android device for use in a Unity app
[英]Can I use light sensor to measure period between flashes of light? Is there any class that I can use or
我可以使用光傳感器來測量兩次閃光之間的時間間隔嗎? 有沒有可以使用的類,還是我應該自己編寫? 誰能為我提供一些起點?
public void onSensorChanged(SensorEvent event) {
difference = System.nanoTime() - startTime;
if (event.values[0] >= 50) {
newdifference = System.nanoTime() - (startTime + difference);
if (newdifference >= 2450 && newdifference < 2550) {
dotordash = ".";
}
else if (newdifference > 7450 && newdifference < 7550) {
dotordash = "-";
}
code += dotordash;
}
show.setText(" " + code);
}
對於獲取點或哈希,對nanoTime()
所做的操作基本上是完全隨機的。 您對兩件事感興趣:
如果光線足夠亮,可以算作“閃光燈打開”或“閃光燈關閉”。 這在SensorEvent
的值中,並且您已經通過event.values[0] >= 50
。 將其放在一行代碼中:
boolean isFlashOn = (event.values[0] >= 50)
其次是計算isFlashOn
更改之間的時間。 您只能從SensorEvent
本身獲取事件的實際時間,因為它可能需要一些時間才能傳遞給您。 因此,切勿嘗試與當前系統時間進行比較。
話雖如此,光傳感器仍然有機會發出噪音,這可能是閃光燈閃光時的黑暗程度。 如果是這種情況,則需要某種噪聲過濾,這可能會很棘手,尤其是對於持續時間很短的東西(例如閃光燈)。 有關噪聲和噪聲過濾的討論,請參見信號噪聲 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.