You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS环境下Chrome浏览器调用Ambient Light Sensor失败问题咨询

环境光传感器(ALS)NotReadableError 排查方案

问题说明

调试环境光传感器功能时用到的测试代码如下:

navigator.permissions.query({ name: 'ambient-light-sensor' }).then(result => {
    if (result.state === 'denied') {
        console.log('Permission to use ambient light sensor is denied.');
        return;
    }

    const als = new AmbientLightSensor({frequency: 10});
    als.addEventListener('activate', () => console.log('Ready to measure EV.'));
    als.addEventListener('error', event => console.log(`Error: ${event.error.name}`));
    als.addEventListener('reading', () => {
        // Defaut ISO value.
        const ISO = 100;
        // Incident-light calibration constant.
        const C = 250;

        let EV = Math.round(Math.log2((als.illuminance * ISO) / C));
        console.log(`Exposure Value (EV) is: ${EV}`);
    });

    als.start();
});

运行后控制台仅返回Error: NotReadableError,运行环境为Chrome Canary v97、MacOS 10.15.7,可按照以下步骤逐一排查:

排查步骤

  • 校验Chrome功能开关状态:在浏览器地址栏输入chrome://flags,分别搜索#generic-sensor-extra-classes和#ambient-light-sensor两个配置项,确认都设置为Enabled状态,修改后重启浏览器生效。
  • 确认页面访问协议符合要求:ALS属于高敏感传感器API,仅支持在HTTPS协议站点或者localhost本地调试环境下运行,普通HTTP站点会直接触发读取失败。
  • 校验MacOS系统权限配置:打开「系统偏好设置」-「安全性与隐私」-「隐私」-「传感器」,确认Chrome Canary已经获得传感器访问权限。注意:Chrome的navigator.permissions接口仅校验浏览器侧的权限配置,不会同步系统级的授权状态,所以接口返回允许的情况下也可能因为系统未授权触发读取错误。
  • 确认设备硬件支持:部分老旧Mac机型没有搭载环境光传感器,可通过「关于本机」-「系统报告」-「硬件」分类下查看是否存在光传感器相关硬件条目,无对应硬件的情况下无法调用该API。
  • 降低采样频率测试:部分设备对高频采样支持度有限,可将new AmbientLightSensor({frequency: 10})中的频率参数改为1,测试是否能正常读取数值。

内容的提问来源于stack exchange,提问作者CatwalkGhost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 05:24:07