首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iSight环境传感器

iSight环境传感器
EN

Stack Overflow用户
提问于 2012-04-08 15:05:53
回答 1查看 1.3K关注 0票数 6

我知道没有任何关于使用isight光传感器的公开文档,但是像ShadowBook (shown here)这样的程序能够访问亮度数据,我只是想知道是否有人能够达到类似的结果并知道如何访问这个传感器?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-09 23:02:12

您可以从IOKit库中使用IOService访问光传感器。光传感器的名称是"AppleLMUController“。这里有一个很好的例子:light sensor。简单地说,像这样获取服务:io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("AppleLMUController"));,然后使用以下命令连接到该服务:

代码语言:javascript
复制
io_connect_t port = 0;
IOServiceOpen(service, mach_task_self(), 0, &port);

使用:IOConnectMethodScalarIScalarO(port, 0, 0, 2, &left, &right);获取光级,其中leftright是整数,现在保存传感器的光级。请注意,许多IOService方法返回一个kern_return_t变量,该变量将保存KERN_SUCCESS,除非该方法失败。还要确保使用IOObjectRelease(service);释放服务对象

编辑:转念一想,IOConnectMethodScalarIScalarO()似乎被弃用了。取而代之的是:

代码语言:javascript
复制
uint32_t outputs = 2;
uint64_t values[outputs];

IOConnectCallMethod(port, 0, nil, 0, nil, 0, values , &outputs, nil, 0);

左边和右边的值将分别存储在values[0]values[1]中。请注意,并不是所有的MacBooks都是这样工作的:在我2010年中的15英寸专业版上,这两个值是相同的,因为iSight相机中的光传感器是一样的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10061028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档