在通话期间禁用光传感器 - Android

时间:2010-11-23 14:53:41

标签: android sensor

当您在Android上通话时,光传感器正在工作。 如果您覆盖屏幕的左上角,显示屏将变为黑色,您将看不到任何内容。

我想取消该功能,尝试使用Android SensorsLight Sensor,但它无效。

这是我的代码:

 senMgrLight=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
    senMgrLight.registerListener(onSensorListener,
            senMgrLight.getDefaultSensor(Sensor.TYPE_LIGHT),
                SensorManager.SENSOR_DELAY_FASTEST);

感谢。

4 个答案:

答案 0 :(得分:2)

您需要使用的传感器是接近传感器, 试试这个,这会让你知道传感器是否隐藏(并且在通话时它可以正常工作)

   SensorManager sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        sm.registerListener(new SensorEventListener() {

            @Override
            public void onSensorChanged(SensorEvent event) {
                Log.i(TAG,"sensor: " + event.sensor.getName() + ", values: " + Arrays.toString(event.values));

            }

            @Override
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
                Log.i(TAG,"accuracy change: " + sensor + ", accuracy: " + accuracy);

            }
        }, sm.getDefaultSensor(Sensor.TYPE_PROXIMITY),SensorManager.SENSOR_DELAY_FASTEST);

答案 1 :(得分:1)

在调用之前,我会使用课程Settings.System通过getInt()读取SCREEN_BRIGHTNESSSCREEN_BRIGHTNESS_MODE。然后我将通过setInt()设置新值,即亮度为255,模式为SCREEN_BRIGHTNESS_MODE_MANUAL - 这应该在最大量时提供恒定的亮度。

挂断电话后,您可以恢复存储的旧值,然后通过setInt()更改值,以便用户恢复初始设置。 : - )

不要忘记该模式仅适用于Android 2.2及更高版本(API级别8),因此如果您想要定位较旧的Android版本,则必须使用反射。当然,您肯定需要权限来编写系统设置。

答案 2 :(得分:1)

屏幕关闭由代理传感器控制,而不是光传感器。 您可以在手机应用程序中删除代理传感器的注册表

答案 3 :(得分:0)

我打赌你会喜欢这个应用程序!!
PROXIMITY-SENSOR-OFF.apk

问候
CVS @ 2600Hertz