我想修改,Android的屏幕亮度變化有多快,如果在Android設置中啓用了自動亮度。Android:設置自動亮度適應速度
問題是,如果屏幕亮度變化很快,這會非常煩人,因爲如果光感應器被用戶的手意外覆蓋。
這不是禁用自動亮度的選項。
我發現這一點:Change brightness according to surrounding light in android 但我寧願不要手動破解它...
是否有更好的選擇?
我想修改,Android的屏幕亮度變化有多快,如果在Android設置中啓用了自動亮度。Android:設置自動亮度適應速度
問題是,如果屏幕亮度變化很快,這會非常煩人,因爲如果光感應器被用戶的手意外覆蓋。
這不是禁用自動亮度的選項。
我發現這一點:Change brightness according to surrounding light in android 但我寧願不要手動破解它...
是否有更好的選擇?
你可能想看看這些常量
private static final int BRIGHTNESS_RAMP_RATE_FAST = 200;
private static final int BRIGHTNESS_RAMP_RATE_SLOW = 40;
以及它們如何在中使用0類
Controls the power state of the display. Handles the proximity sensor, light sensor,
and animations between states including the screen off animation.
您還可能要爲描述here
The rate sensor events are delivered at. This is only a hint to the system.
Events may be received faster or slower than the specified rate.
Usually events are received faster. The value must be one of SENSOR_DELAY_NORMAL,
SENSOR_DELAY_UI, SENSOR_DELAY_GAME, or SENSOR_DELAY_FASTEST or, the desired delay
between events in microseconds.
Specifying the delay in microseconds only works from
Android 2.3 (API level 9) onwards. For earlier releases, you must use one of the
SENSOR_DELAY_* constants.
您無法更改DisplayManager中的自動亮度更改延遲,也無法更改曲線。您可以安裝控制亮度的市場應用程序之一,並讓您更好地控制亮度。請點擊這裏:https://play.google.com/store/search?q=auto+brightness&c=apps
SensorEventListener mLightListener = new SensorEventListener() {
2971 public void More ...onSensorChanged(SensorEvent event) {
2972 synchronized (mLocks) {
2973 // ignore light sensor while screen is turning off
2974 if (isScreenTurningOffLocked()) {
2975 return;
2976 }
2977
2978 int value = (int)event.values[0];
2979 long milliseconds = SystemClock.elapsedRealtime();
2980 if (mDebugLightSensor) {
2981 Slog.d(TAG, "onSensorChanged: light value: " + value);
2982 }
2983 mHandler.removeCallbacks(mAutoBrightnessTask);
2984 if (mLightSensorValue != value) {
2985 if (mLightSensorValue == -1 ||
2986 milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) {
2987 // process the value immediately if screen has just turned on
2988 lightSensorChangedLocked(value);
2989 } else {
2990 // delay processing to debounce the sensor
2991 mLightSensorPendingValue = value;
2992 mHandler.postDelayed(mAutoBrightnessTask, LIGHT_SENSOR_DELAY);
2993 }
2994 } else {
2995 mLightSensorPendingValue = -1;
2996 }
2997 }
2998 }
2999
3000 public void More ...onAccuracyChanged(Sensor sensor, int accuracy) {
3001 // ignore
3002 }
3003 };
正如你所看到的,LIGHT_SENSOR_DELAY是
private static final int LIGHT_SENSOR_DELAY = 2000;
因此,基本上不是,每次都需要重新實現這個東西... – Dennis
看起來如此,因爲DisplayPowerController中的方法沒有公開給開發人員(直到現在)。 – random