diff --git a/android/src/main/java/com/ninty/system/setting/SystemSetting.java b/android/src/main/java/com/ninty/system/setting/SystemSetting.java index dedd524..e145c0c 100644 --- a/android/src/main/java/com/ninty/system/setting/SystemSetting.java +++ b/android/src/main/java/com/ninty/system/setting/SystemSetting.java @@ -7,6 +7,7 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Resources; import android.location.LocationManager; import android.media.AudioManager; import android.net.Uri; @@ -198,6 +199,21 @@ public void onReceive(Context context, Intent intent) { } } + private static int getMaxBrightness() { + int brightness = 255; + try { + Resources system = Resources.getSystem(); + int resId = system.getIdentifier("config_screenBrightnessSettingMaximum", "integer", "android"); + if (resId != 0) { + brightness = system.getInteger(resId); + } + + } catch (Exception e) { + e.printStackTrace(); + } + return brightness; + } + @Override public String getName() { return SystemSetting.class.getSimpleName(); @@ -222,7 +238,7 @@ public void getScreenMode(Promise promise) { @ReactMethod public void setBrightness(float val, Promise promise) { - final int brightness = (int) (val * 255); + final int brightness = (int) (val * getMaxBrightness()); checkAndSet(Settings.System.SCREEN_BRIGHTNESS, brightness, promise); } @@ -252,7 +268,7 @@ public void getAppBrightness(Promise promise) { float result = curActivity.getWindow().getAttributes().screenBrightness; if (result < 0) { int val = Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); - promise.resolve(val * 1.0f / 255); + promise.resolve(val * 1.0f / getMaxBrightness()); } else { promise.resolve(result); } @@ -272,7 +288,7 @@ public void openWriteSetting() { public void getBrightness(Promise promise) { try { int val = Settings.System.getInt(mContext.getContentResolver(), Settings.System.SCREEN_BRIGHTNESS); - promise.resolve(val * 1.0f / 255); + promise.resolve(val * 1.0f / getMaxBrightness()); } catch (Settings.SettingNotFoundException e) { Log.e(TAG, "err", e); promise.reject("-1", "get brightness fail", e);