返回顶部
首页 > 资讯 > 移动开发 >Android保存数据到系统数据库中:Settings.System
  • 179
分享到

Android保存数据到系统数据库中:Settings.System

数据系统system数据库Android 2022-06-06 13:06:53 179人浏览 泡泡鱼
摘要

有时候我们一些设置属性要保存到本地,防止软件卸载后配置属性消失。 比如我今天就有个修改手机蓝牙名称显示的功能,但是只需要修改一次,并且进行标记,

有时候我们一些设置属性要保存到本地,防止软件卸载后配置属性消失。
比如我今天就有个修改手机蓝牙名称显示的功能,但是只需要修改一次,并且进行标记,并保存这个标识,如果程序卸载,重新安装也不需要再修改,这里就是要保存这个标识,来判断是否需要修改名称。
要实现这个功能,SharePreference是不行的了,本地文件file保存呢,是可以的,但是比较麻烦,而且有被删掉的可能。
这里介绍一个比较简单、实用的方法:
这个方法就是把标识保存到系统配置(系统数据库)文件中,即使程序卸载也不影响,系统的配置文件。

一.在手机中的位置

/data/system/users/0/settings_system.xml 文件中(如果你修改的是 global 或者 secure 的,就在对应的 settings_global.xml / settings_secure.xml 中

二.创建数据库的实现代码
frameworks\base\packages\SettingsProvider\src\com\Android\providers\settings 的 DatabaseHelper 类里面

三. 读写的方法如下
字符串Settings.System.putString(ContentResolver resolver, String name, String value)
读字符串Settings.System.getString(ContentResolver resolver, String name)

写整型Settings.System.putInt(ContentResolver resolver, String name, int value)
读整型Settings.System.getInt(ContentResolver resolver, String name,0)

四.具体的操作,我是拿设置下的电池界面来做实验的,具体的是在 PowerUsageSummary 类中的 OnCreate()方法中,核心的代码如下

//CodeDu add    
import android.provider.Settings;
import android.util.Log;
import android.content.Context;
//CodeDu add 
//CodeDu add 
// Context cont = this.getApplicationContext();
Context cont = getContext();
Settings.System.putString(cont.getContentResolver(),"shangqin", "juajuan520");
String msg;
int get_int=0;
msg=Settings.System.getString(cont.getContentResolver(),"shangqin");
Settings.System.putInt(cont.getContentResolver(),"dulei", 520111);
get_int=Settings.System.getInt(cont.getContentResolver(),"dulei",0);
String text = String.valueOf(get_int);
Log.d("CodeDu", msg);
Log.d("CodeDu", text);
//CodeDu add 

五.adb 查看设置的属性值
抓settingsProvider:

  adb shell settings get global facelock_unlock_device
  adb shell settings get system key_unlock_timeout

作者:CoderDu


--结束END--

本文标题: Android保存数据到系统数据库中:Settings.System

本文链接: https://lsjlt.com/news/29017.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作