我意識到沒有任何關於使用isight光線傳感器的公開文檔,但ShadowBook (shown here)等程序能夠訪問亮度數據,我只是想知道是否有人能夠實現類似的結果,並知道如何訪問這個傳感器?謝謝!iSight環境傳感器
6
A
回答
7
您可以從IOKit庫訪問IOService的光傳感器。光傳感器的名稱是「AppleLMUController」。這是一個很好的例子:light sensor。 簡單地說,得到這樣的服務:io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleLMUController"));
然後,使用連接到服務:IOConnectMethodScalarIScalarO(port, 0, 0, 2, &left, &right);
凡left
和right
是,現在抱傳感器的光線水平的整數:
io_connect_t port = 0;
IOServiceOpen(service, mach_task_self(), 0, &port);
利用獲取的光照水平。 請注意,許多IOService方法返回一個kern_return_t
變量,該變量將保存KERN_SUCCESS
,除非該方法失敗。另外請務必使用IOObjectRelease(service);
發佈服務對象編輯:第二個想法,IOConnectMethodScalarIScalarO()
似乎已被棄用。 相反,使用:
uint32_t outputs = 2;
uint64_t values[outputs];
IOConnectCallMethod(port, 0, nil, 0, nil, 0, values , &outputs, nil, 0);
左右的值將被分別存儲在values[0]
和values[1]
。請注意,並非所有的MacBook都以這種方式工作:在我2010年中期的15英寸專業版中,兩個值都相同,因爲光線傳感器位於iSight相機中。
相關問題
- 1. iphone中的環境光線傳感器
- 2. 閱讀iPhone的環境光傳感器
- 3. 部分可觀察的無傳感器環境示例
- 4. 嵌入式設備環境中的前臺傳感器服務
- 5. Android Wear:測量傳感器並防止環境模式/睡眠
- 6. 傳感器標籤CC2650 - 讀取傳感器傳感器
- 7. 環境光傳感器中斷狀態寄存器沒有得到更新
- 8. 壓力傳感器重量傳感器
- 9. 使用網絡攝像頭作爲PC中的環境光線傳感器
- 10. 接近感應傳感器時,手移動傳感器
- 11. Android:傳感器
- 12. Android傳感器
- 13. 環境感知的SQL腳本
- 14. 傳感器抽取
- 15. 特殊傳感器
- 16. 從磁傳感器
- 17. 傳感器編程
- 18. 在iPhone傳感器
- 19. USB OTG&傳感器
- 20. 光傳感器計
- 21. Xperia Play傳感器
- 22. 仿真傳感器
- 23. 傳感器模擬器2.1
- 24. Android Wear加速度傳感器/陀螺儀傳感器
- 25. Android傳感器與藍牙低能量傳感器的能效?
- 26. Windows傳感器API - 獲取傳感器事件
- 27. X軸傳感器校正 - 翻轉傳感器檢測 - Froyo
- 28. Android從傳感器獲取傳感器值
- 29. 安全系統的門窗傳感器和傳感器
- 30. 如何使用pyserial流式傳感器傳感器?
我將如何返回這些值的日誌? NSLog(@「right%f」,values);'?我將如何格式化左/右? – 2012-04-10 04:13:08
還有一個簡單的問題,當我的應用程序啓動時,它似乎被調用一次,但我怎樣才能不斷地調用它?試圖使用一個計時器來調用該方法,但它不更新值 – 2012-04-10 04:24:21
要記錄,NSLog(@「Left:%i,Right:%i」,(int)values [0],(int)values [1] );'就足夠了。我認爲使用'values'作爲數組可以解決您的問題,而數字不會更新。如果沒有,我可以給你發一個我做的快速例子。 – wquist 2012-04-10 20:03:56