当您在Android上通话时,光传感器正在工作。 如果您覆盖屏幕的左上角,显示屏将变为黑色,您将看不到任何内容。
我想取消该功能,尝试使用Android Sensors和Light Sensor,但它无效。
这是我的代码:
senMgrLight=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
senMgrLight.registerListener(onSensorListener,
senMgrLight.getDefaultSensor(Sensor.TYPE_LIGHT),
SensorManager.SENSOR_DELAY_FASTEST);
感谢。
答案 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_BRIGHTNESS
和SCREEN_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