Android settings命令讲解和实战

1,简介


        在Android系统中,settings命令用于管理设备设置。这些命令可以与`Settings`提供者(`Settings provider`)交互,后者是一个用于存储和检索系统设置的系统服务。Settings provider在Android系统中可以被看作是一个特殊的数据库,它用于存储和检索系统设置。这个数据库是为系统和应用程序提供的键值对存储服务,用于保存用户的偏好设置、系统配置和其他各种参数。Settings provider 的设计允许它高效地处理大量的设置项,并且能够确保设置的一致性和安全性。此外,它还支持监听设置项的变化,这样应用程序可以在设置发生变化时接收通知并做出相应的响应。

     Settings provider 维护了三个主要的命名空间,即 system、secure 和 global,每个命名空间都有其特定的用途和访问权限:

-system:存储系统级别的设置,通常包括设备状态、系统行为等,如屏幕超时时间、Wi-Fi设置等。这些设置通常是所有应用程序都可以读取的,但只有具有特定权限的应用程序才能修改它们。
-secure:存储敏感设置,如锁屏密码、PIN码等。这些设置对所有应用程序都是不可见的,只有系统应用程序和具有特定权限的应用程序才能访问和修改它们。
-global:存储全局设置,如数据漫游选项、自动时间等。这些设置对所有应用程序都是可见的,并且可以被具有特定权限的应用程序修改。

2,settings命令说明

Settings provider (settings) commands:helpPrint this help text.get [--user <USER_ID> | current] NAMESPACE KEYRetrieve the current value of KEY.put [--user <USER_ID> | current] NAMESPACE KEY VALUE [TAG] [default]Change the contents of KEY to VALUE.TAG to associate with the setting.{default} to set as the default, case-insensitive only for global/secure namespacedelete NAMESPACE KEYDelete the entry for KEY.reset [--user <USER_ID> | current] NAMESPACE {PACKAGE_NAME | RESET_MODE}Reset the global/secure table for a package with mode.RESET_MODE is one of {untrusted_defaults, untrusted_clear, trusted_defaults}, case-insensitivelist NAMESPACEPrint all defined keys.NAMESPACE is one of {system, secure, global}, case-insensitive

相关参数说明:  

- `--user <USER_ID>`:这个参数用于指定操作应该针对特定的用户。在Android多用户环境中,不同的用户可以有不同的设置。如果不指定用户ID,可以使用`current`来代表当前正在操作的用户。

- `system`:这是设置命名空间之一,用于存储系统级别的设置,。这些设置对所有应用都是可见的,但只有具有特定权限的应用才能修改它们。

- `secure`:这个命名空间用于存储敏感设置,比如密码、PIN码等。这些设置对所有应用都是不可见的,只有系统应用和具有特定权限的应用才能访问和修改它们。

- `global`:这个命名空间用于存储全局设置,这些设置对所有应用都是可见的,并且可以被具有特定权限的应用修改。它们通常包括一些系统范围的设置,如日期和时间格式。

以下是一些具体的命令及其作用:

- `get`:检索特定键(KEY)的当前值。如果需要针对特定用户,可以使用`--user <USER_ID>`参数。

- `put`:更改特定键(KEY)的值为特定的值(VALUE)。可以为设置指定一个标签(TAG),或者将其设置为默认值(使用`default`参数)。

- `delete`:删除特定键(KEY)的条目。

- `reset`:重置特定命名空间(如`global`或`secure`)的设置。可以为特定应用重置设置,或者使用`RESET_MODE`参数来指定重置模式。

- `list`:列出特定命名空间(`system`、`secure`或`global`)中定义的所有键。

这些命令通常在Android开发和系统管理中使用,以编程方式修改或检索系统设置。

3,实战-修改应用崩溃弹框配置

场景: 在运行qq阅读时,启动异常了,第一次启动时,不会弹窗,而是直接退出,第二启动才会弹窗,其实这个可以修改系统配置来改变这种行为。

在Android系统中,`show_first_crash_dialog`是一个系统设置项,它通常用于控制当应用程序首次崩溃时是否显示崩溃对话框。这个设置项属于`global`命名空间,因为它影响的是整个系统的全局行为。如果你想要通过settings命令来管理这个设置项,你可以使用以下命令:

- 获取`show_first_crash_dialog`的当前值
  adb shell settings get global show_first_crash_dialog
  这将返回`show_first_crash_dialog`的当前值,可能是`0`(不显示)或`1`(显示)。

- 设置`show_first_crash_dialog`的值
  adb shell settings put global show_first_crash_dialog 1
  这将设置系统在应用首次崩溃时显示崩溃对话框。将`1`替换为`0`可以关闭这个对话框。

- 删除`show_first_crash_dialog`的设置(如果需要重置为默认值):
  adb shell settings delete global show_first_crash_dialog
  这将删除`show_first_crash_dialog`的当前值,使系统使用默认设置。

 所以只要执行settings put global show_first_crash_dialog 1, 应用如果启动异常,第一次启动异常就会报错。

4,其他常见配置

 settings get system screen_off_timeout 获取屏幕的休眠时间

 settings put system screen_off_timeout 999999999  设置屏幕的睡眠时间,也是用来设置系统的睡眠时间(下次断电上电后还是有效的)

 settings get secure default_input_method  获得系统默认输入法

 settings get system screen_brightness_mode          获取屏幕亮度模式

 settings get system screen_brightness      获取屏幕亮度

 settings put system screen_brightness 150 设置屏幕亮度为150

 settings get global auto_time             获取日期时间选项中通过网络获取时间的状态

 settings put global auto_time 0

 settings get global wifi_on   获取系统wifi是否打开

 settings put global wifi_on 0       关闭wifi

 settings get global airlpane_mode_on 获取系统是否处于飞行模式

 settings get secure android_id   获取android_id

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

携程:从MySQL迁移OceanBase的数据库发布系统实践

作者简介&#xff1a;杨晓军 现就职于携程的数据库团队&#xff0c;主要负责携程数据库的研发与管理&#xff0c;专注于提升数据库的稳定性。 自分布式关系型数据库OceanBase开源以来&#xff0c;携程已经在线上环境中进行了广泛的应用&#xff0c;取代了原先以MySQL为主力的业…

组件通信 Vue3

1.props 1.child <template><div class"child"><h3>子组件</h3><h4>玩具&#xff1a;{{ toy }}</h4><h4>父给的车&#xff1a;{{ car }}</h4><button click"sendToy(toy)">把玩具给父亲</butt…

通过visual studio进行dump文件调试和分析

0、前言 很多时候程序crash之后需要分析原因。对于C/C程序&#xff0c;一般最常见的场景和方法就是根据dump文件进行分析。 1、分析的前提条件 进行dump文件分析&#xff0c;需要以下文件&#xff1a; 进程crash时产生的dump文件程序源码进程对应的程序exe文件编译exe文件时产…

【赵渝强老师】MongoDB的存储引擎

存储引擎&#xff08;Storage Engine&#xff09;是MongoDB的核心组件&#xff0c;它负责管理数据如何存储在硬盘&#xff08;Disk&#xff09;和内存&#xff08;Memory&#xff09;上。从MongoDB 3.2 版本开始&#xff0c;MongoDB支持多种类型的数据存储引擎。 视频讲解如下&…

使用twilio向手机发短信做监控报警

最近遇到个需求&#xff0c;就是夜班HW希望有个监控系统指标&#xff0c;如果异常就向监控人手机打电话的需求。在考察以后&#xff0c;发现目前由于国内防电信诈骗的原因&#xff0c;所以想要使用云通讯功能必须由企业去申请&#xff0c;但作为一个个人的监控项目来说太大了。…

Python | Leetcode Python题解之第384题打乱数组

题目&#xff1a; 题解&#xff1a; class Solution:def __init__(self, nums: List[int]):self.nums numsself.original nums.copy()def reset(self) -> List[int]:self.nums self.original.copy()return self.numsdef shuffle(self) -> List[int]:for i in range(l…

极光推送(JPush)赋能登虹科技,打造智慧视觉云平台新体验

近日&#xff0c;中国领先的客户互动和营销科技服务商极光&#xff08;Aurora Mobile&#xff0c;纳斯达克股票代码&#xff1a;JG&#xff09;与杭州登虹科技有限公司&#xff08;以下简称“登虹科技&#xff08;Closeli&#xff09;”&#xff09;达成合作&#xff0c;借助极…

数分基础(03-3)客户特征分析--Tableau

文章目录 客户特征分析 - Tableau1. 说明2. 思路与步骤3. 数据准备和导入3.1 用EXCEL初步检查和处理数据3.1.1 打开3.1.2 初步检查&#xff08;1&#xff09;缺失值检查缺失值处理 &#xff08;2&#xff09;格式化日期字段&#xff08;3&#xff09;其他字段数据类型 &#xf…

【vscode】vscode+cmake+llvm+ninja开发环境的搭建(draft)

文章目录 前言1 软件、工具和插件安装1.1 vscode安装1.2 cmake安装1.3 安装LLVM1.4 安装Ninja1.5 vscode插件安装 2 工具链和CMakeLists2.1 工具链&#xff08;toolchain.cmake&#xff09;2.2 CMakeLists.txt2.3 基本语法注释 前言 本文是一个使用vscode的小白扫盲贴。 所谓工…

科讯档案管理系统存在SQL注入漏洞(0day)

漏洞描述 安徽科迅教育装备20年来来始终坚持智慧校园集成方案产品的开发和部署应用&#xff0c;我们有完善的智慧校园和数字校园建设方案&#xff0c;根据不同的学校不同的实际情况量身定做系统集成方案。产品主要是为了实现校园的智慧网络、智慧OA、智慧教学、智慧学习、数字医…

.NET Razor类库-热加载 就是运行时编译

1.新建3个项目 1.1 一个.NET Standard2.1项目 IX.Sdk.SvnCICD4NuGet 1.2 一个.NET Razor类库项目 IX.Sdk.SvnCICD4NuGet.RazorWeb 1.3 一个.NET6 Web项目 IX.Sdk.SvnCICD4NuGet.Web 这3个项目的引用关系 Web引用 Razor类库 和 .NET Standard2.1 Razor类库引用.NET Standard2.1…

数据同步大冒险:PostgreSQL到MySQL的奇妙之旅

引言&#xff1a;一场跨数据库的浪漫邂逅 &#x1f491; 在数据的世界里&#xff0c;不同数据库系统就像是来自不同星球的恋人&#xff0c;它们各自拥有独特的魅力&#xff0c;但偶尔也会渴望一场跨越界限的亲密接触。今天&#xff0c;我们就来见证一场PostgreSQL与MySQL之间的…

基于RK3588+MCU智能清洁车应用解决方案

智能清洁车应用解决方案 在智慧城市建设发展的过程中&#xff0c;智慧环卫是打造智慧城市的重要组成部分&#xff0c;智能清洁车作为实现环卫智能化、提升作业效率和服务质量的关键工具&#xff0c;发挥着不可或缺的作用。 智能清洁车集成了激光雷达、双目视觉、多重传感器以及…

无线通信频率分配

首先看看无线电信号的频谱如何划分&#xff1a; 一、5G NR 3GPP已指定5G NR 支持的频段列表&#xff0c;5G NR频谱范围可达100GHz&#xff0c;指定了两大频率范围&#xff1a; ① Frequency range 1 &#xff08;FR1&#xff09;&#xff1a;就是我们通常讲的6GHz以下频段 频率…

uniapp uni-popup底部弹框留白 底部颜色修改 滚动穿刺

做底部弹框的时候&#xff0c;可能出现以下场景需要处理。 一、出现底部留白不是白色&#xff0c;需要修改颜色的时候&#xff1a; 1、如果弹框不需要圆角效果&#xff0c;则在uni-popup加上背景色就行&#xff0c;弹框是个直角样式&#xff1a; 2、如果需要圆角效果&#xff0…

CSS3页面布局-三栏-中栏流动布局

三栏-中栏流动布局 用负外边距实现 实现三栏布局且中栏内容区不固定的核心问题就是处理右栏的定位&#xff0c; 并在中栏内容区大小改变时控制右栏与布局的关系。 控制两个外包装容器的外边距&#xff0c;一个包围三栏&#xff0c;一个包围左栏和中栏。 <!DOCTYPE html&…

【vue、Electron】搭建一个Electron vue项目过程、将前端页面打包成exe 桌面应用

文章目录 前言使用 electron-vue 创建项目1. 安装 vue-cli&#xff08;如果未安装&#xff09;2. 使用 electron-vue 模板创建项目3. 安装和配置 electron-builder4. 运行Electron项目5. 打包应用 可能遇到的问题解决Electron vue首次启动巨慢无法加载执行npm run electron:bui…

grid布局实现移动端H5响应式排列正方形格子布局

grid布局实现移动端H5响应式排列正方形区域 grid布局&#xff1a;CSS Grid 网格布局教程在 CSS 中&#xff0c;padding-top 的百分比值是相对于元素自身的宽度&#xff0c;而不是高度。这是 CSS 规范中的一个特性&#xff0c;所有的 padding 和 margin 的百分比值都是相对于元…

客服系统简易版

整体架构解读 客服端和商城端都通过websocket连接到客服系统, 并定期维持心跳当客户接入客服系统时, 先根据策略选择在线客服, 然后再发送消息给客服 websocket实现 用netty实现websocket协议, 增加心跳处理的handler, 详见chat-server模块 客服路由规则 暂时仅支持轮询的…

上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型&#xff1b; 2.多图输出、多指标输出(MAE、RMSE、MSE、R2)&#xff0c;多输入单输出&#xff0c;含不同置信区间图、概率…