3

当您在 Android 手机上通话时,光线传感器正在工作。如果你盖住屏幕的左上角,显示屏会变黑,你什么都看不到。

我想取消该功能,并尝试使用Android 传感器光传感器,但它不起作用。

这是我的代码:

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

谢谢。

4

4 回答 4

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);
于 2010-11-24T09:34:10.407 回答
1

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

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

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

于 2010-11-23T16:22:27.853 回答
1

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

于 2011-10-16T03:22:25.517 回答
0

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

问候
CVS@2600Hertz

于 2011-03-04T16:58:52.570 回答