我正在尝试从小部件更改屏幕亮度。基本上,我遵循了下一页的建议。 更改屏幕亮度 系统设置 Android
到目前为止,这是我能够做到的。1.我有一个带按钮的主Activity,当我点击按钮时,我可以改变屏幕的亮度。
我有一个带按钮的小部件。我已经确认从小部件按钮调用 RefreshScreen 类。我从 AppWidgetProvider 调用这个类。问题 屏幕亮度没有变化。当我使用调试模式运行问题时,我收到以下警告。
10-21 12:20:21.579: W/BackupManagerService(137): dataChanged 但没有参与者 pkg='com.android.providers.settings' uid=10086
10-21 12:20:21.579: W/InputManagerService(137): 窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@40f56aa8
我有以下权限集。
我有以下代码来改变亮度。我很抱歉混淆了代码,但我有两个按钮。当亮度按钮改变时,屏幕应该是最亮的。更改音量按钮时,屏幕应该在最暗和最亮之间。
非常感谢任何输入。谢谢你。
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();
}
}