我正在尝试从Widget更改屏幕亮度。基本上,我遵循了以下页面的建议。 Changing the Screen Brightness System Setting AndroidAndroid更改屏幕蒙板的屏幕亮度
到目前为止,这是我所能做到的。 1.我有一个主要的按钮活动,当我点击按钮时,我可以改变屏幕的亮度。
我有一个按钮的小部件。 我已确认RefreshScreen类正在从窗口小部件按钮中调用。 我从AppWidgetProvider调用这个类。 问题 屏幕亮度不变。 当我用调试模式运行问题时,出现以下警告。
12月10日至21日:20:21.579:W/BackupManagerService(137):dataChanged但没有与会者PKG = 'com.android.providers.settings为' uid = 10086
12月10日至21日:20:21.579 :W/InputManagerService(137):窗口已经集中,忽视聚焦增益的:[email protected]
我有以下权限集。
我有以下代码来更改亮度。 我很抱歉让代码混淆,但我有两个按钮。 当亮度按钮更改时,屏幕应该显示最亮。 当音量按钮改变时,屏幕应该是最暗和最亮之间的一半。
任何输入,非常感谢。 谢谢。
public class RefreshScreen extends Activity {
public static String BRIGHTNESS_VALUE = "BRIGHTNESS_VALUE";
public static String BRIGHTNESS_CHANGE = "BRIGHTNESS_ACTION";
public static String VOLUME_CHANGE = "VOLUME_ACTION";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String value = intent.getStringExtra(BRIGHTNESS_VALUE);
WindowManager.LayoutParams layoutParams = getWindow().getAttributes();
if (value.equals(BRIGHTNESS_CHANGE)) {
Toast.makeText(this, "BRIGHTNESS CHANGE Clicked", Toast.LENGTH_LONG).show();
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, 255);
layoutParams.screenBrightness = 1F;
getWindow().setAttributes(layoutParams);
}
if (value.equals(VOLUME_CHANGE)) {
Toast.makeText(this, "VOLUME CHANGE Clicked", Toast.LENGTH_LONG).show();
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS, 125);
layoutParams.screenBrightness = 0.5F;
getWindow().setAttributes(layoutParams);
}
finish();
}
}
我发现,如果我推荐完成(),此代码的作品。任何想法为什么? – Hiro