java - 获取系统设置的当前值并根据需要更改值

标签 java android

我对 Android 和 Java 还很陌生,但我正在通过观看教程和提出问题来积极学习。截至目前,我正在通过在 Android Studio 中编写自己的应用程序来练习。我想从更艰难的事情开始。那么,让我向大家解释一下该应用程序的用途。我希望最终产品显示一个用户界面(显然),屏幕中间有一个按钮,上面写着“更改值”。但这对我来说并不是困难的部分。我已经设置了令我满意的用户界面。然而,我正在努力解决的部分是 Java 部分。通过我的研究,我找不到任何与我想要实现的目标相关的内容。

我想要做的是检查位于 Android 设置数据库的全局表(“adb_enabled”)中的字符串的值,如果已启用(“1”),则将其更改为(“0”)。我看过有关如何更改亮度和获取当前时间的指南,但它们对我帮助不大。

这是我的引用代码:

Settings.Global.putInt( getContentResolver() ,
            Settings.Global.LOCKSCREEN_AD_ENABLED , 0 );

执行上面的代码时,我收到以下错误:错误:找不到符号变量LOCKSCREEN_AD_ENABLED。有谁知道我该如何解决上述错误?谢谢!

最佳答案

如果您的应用是系统应用,您可以在系统设置中进行更改。非系统应用程序,即安装在数据分区中的应用程序无法修改系统设置。非系统应用只能使用 Intent 或系统 UI 来打开修改设置。

来自官方documentation :

Global system settings, containing preferences that always apply identically to all defined users. Applications can read these but are not allowed to write; like the "Secure" settings, these are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values.

如果您的应用是系统应用,那么您可以使用以下代码进行更改(仅适用于系统应用):

int adb = 0;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
  adb = Settings.Global.getInt(getApplicationContext().getContentResolver(),
          Settings.Global.ADB_ENABLED, 0);
}
// toggle the USB debugging setting
adb = adb == 0 ? 1 : 0;
Settings.Secure.putInt(getApplicationContext().getContentResolver(),
        Settings.Secure.ADB_ENABLED, adb);

将以下权限添加到AndroidManifest.xml:

  <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
  <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"></uses-permission>

关于java - 获取系统设置的当前值并根据需要更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51938707/

相关文章:

java - 我可以更改 JComboBox 拇指样式吗?

java - Bukkit - 检查玩家是否发送包含初始化 double 的聊天消息

android - 拒绝所有权限后无法继续

Android:混淆类名和方法的Proguard配置

java - 添加 ShowcaseView 作为库项目

java - 在 JCalendar 中使用 JDateChooser 不需要的数据

java - 将时间添加到当前时间会产生 1 分钟的误差 (Kotlin/Java)

java - 退出时嗡嗡作响

java - 如何使用 skyepub 读取 epub 文件?

android - 当应用程序已经打开并且通知来了时,如何在对话框中显示推送通知?