如何在android中设置屏幕亮度和字体比例

如何在android中设置屏幕亮度和字体比例,android,font-size,screen-brightness,Android,Font Size,Screen Brightness,iam将设备设置设置为特定值。我想使用以下代码调整屏幕亮度和字体比例iam: //For Font-Scale Settings.System.putFloat(this.getContentResolver(),Settings.System.FONT_SCALE,(float) 1.3); //For Brightness Settings.System.putString(this.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS

iam将设备设置设置为特定值。我想使用以下代码调整屏幕亮度和字体比例iam:

//For Font-Scale
Settings.System.putFloat(this.getContentResolver(),Settings.System.FONT_SCALE,(float) 1.3);
//For Brightness
Settings.System.putString(this.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS,255);
亮度值确实会改变,但要设置并激活它,我必须进入屏幕设置并打开亮度设置,然后按OK。 字体比例的值不会更改。
我想可能是一种刷新设置以获得新值的方法。有人能帮我吗?

这是应用程序无法做到的。使这些设置生效的一种方法是重新启动手机。如果您具有根访问权限,则可以使用非公共API。使用下面的代码使用反射来完成

要更改亮度,您需要调用

 PowerManagerService.setBacklightBrightness(brightness);
改变

 ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig)

检查源代码DisplaySettings.java,下面是控制字体大小的方法

public void writeFontSizePreference(Object objValue) {
    try {
        mCurConfig.fontScale = Float.parseFloat(objValue.toString());
        ActivityManagerNative.getDefault().updatePersistentConfiguration(mCurConfig);
    } catch (RemoteException e) {
        Log.w(TAG, "Unable to save font size");
    }
}
这里有一个解决方案,可以使字体大小保持在不同的字体比例

float textSize = 22f;
mTextView.setTextSize(textSize / getResources().getConfiguration().fontScale);

我认为@shoe rat的答案更适合于活动或应用程序环境。

你的android sdk版本是什么?我尝试使用2.3和4.1,这两个版本都是我的朋友在我重新启动手机后真正起作用的版本。安卓提供了将特定设置应用于系统的方法。为什么需要重新启动?