【问题标题】:change system settings from android widget从 android 小部件更改系统设置
【发布时间】:2010-04-12 22:36:31
【问题描述】:

我有一个小部件可以更改某些系统设置,但不会立即生效。看来我需要刷新系统设置才能使用。您如何从即时获取的小部件中更改某些系统设置?

当我的小部件被按下时,它会进入一个空白背景的活动以更改系统设置。更改的设置之一是显示亮度。这是我用来更改显示亮度的代码。一旦我更改了设置,我就会调用完成函数来退出活动,因此在更改设置后我不会卡在那里。我确实注意到的一件事是,如果我没有退出活动,设置确实会改变,但我被困在活动中。当我添加 class.this.finish();退出设置不变的活动。

android.provider.Settings.System.putInt(getContentResolver(),android.provider.Settings.System.SCREEN_BRIGHTNESS, brightness); // 0-255 
WindowManager.LayoutParams lp = getWindow().getAttributes();
lp.screenBrightness = brightness / 255.0f;
getWindow().setAttributes(lp);

【问题讨论】:

  • 您能否再添加几段关于您认为“系统设置”是什么以及您如何更改它们的段落,或者可能是一些源代码来证明您的问题?这将使帮助您变得更加容易。谢谢!
  • 我在我的问题中添加了更多信息

标签: android settings system widget


【解决方案1】:

找到了答案,我正在快速退出活动。出于某种原因,我需要将退出延迟几百毫秒,以便进行更改。

【讨论】:

  • 你在哪些设备上测试过这个?
【解决方案2】:

调整系统亮度的真正方法在 SDK 中不可见。您拥有的代码是最好的——该设置将在下次重新启动时生效,screenBrightness 设置将影响当前活动。

【讨论】:

  • 是的,我发现屏幕亮度会改变当前活动的设置,但是当我退出活动时,亮度的系统设置就会起作用。但问题是当我为小部件执行此操作时,当我使用完成()时不需要它;在我更改设置后立即命令。
  • 屏幕亮度变化可能无法通过应用小部件正常工作。
  • 在没有device_power权限的情况下,是否可以通过反射或其他技巧改变屏幕亮度?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多