当前位置: 首页 > news >正文

Android Settings 设置项修改

Settings 设置项

在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。

通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置

在官方文档的描述中,还有一段注意事项:

Note: If the app targets API level 23 or higher, the app user must explicitly grant this permission to the app through a permission management screen. The app requests the user’s approval by sending an intent with action Settings.ACTION_MANAGE_WRITE_SETTINGS. The app can check whether it has this authorization by calling Settings.System.canWrite().

意思是在 app 的目标 api 是 23 (Android 6) 或更高版本时,app 用户必须显示地通过一个权限管理页面授权 app 拥有 读/写 系统设置的权限。使用 IntentSettings.ACTION_MANAGE_WRITE_SETTINGS 打开这个权限管理页面,让用户决定是否授权给 app 读/写 系统设置。在 app 中可以调用 Settings.System.canWrite() 查询系统设置是否可以修改。

ACTION_MANAGE_WRITE_SETTINGS

上面描绘中提到 ACTION_MANAGE_WRITE_SETTINGS 这个 action。 下面是它完整的定义。

package android.provider;/*** The Settings provider contains global system-level device preferences.*/
public final class Settings {// ....../*** Activity Action: Show screen for controlling which apps are allowed to write/modify* system settings.* <p>* In some cases, a matching Activity may not exist, so ensure you* safeguard against this.* <p>* Input: Optionally, the Intent's data URI can specify the application package name to* directly invoke the management GUI specific to the package name. For example* "package:com.my.app".* <p>* Output: Nothing.*/@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)public static final String ACTION_MANAGE_WRITE_SETTINGS ="android.settings.action.MANAGE_WRITE_SETTINGS";// ......
}

使用 IntentACTION_MANAGE_WRITE_SETTINGS 打开一个权限管理页面,提示用户打开开关授权用户 读取/修改 系统设置。但是也存在例外情况,有的设备上不存在这样一个 Activity 页面,所以在使用这个 action 前,先确认安全措施中是否包含这样的一个权限管理页面。

在使用时,需要创建在 Intent 中携带 Uri 数据,将具体的 app 的 packagename 传入,系统根据 Uri 内的 packagename 快速地打开页面并显示 app 的基本数据,例如 app 图标,app 名称。

要打开这个页面,下方的 “Allow modifying system settings” 开关正常显示,在项目的 manifest 文件中声明 WRITE_SETTINGS 权限。

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

在上面的操作页面,打开开关后,然后返回上一个 Activity 页面,返回的 ActivityResult 的数据。

ActivityResult{resultCode=RESULT_CANCELED, data=null}

在修改了权限之后,返回到上一个页面,不会带回任何值。

不可更改的设置项

一次在项目中遇到了涉及到 app 修改系统 “Set time automatically” 项需求,但在 app 获取到 WRITE_SETTINGS 权限后,调用 API 去修改 Settings.Global.AUTO_TIME ,会发现返回是 失败 的结果。

 val setResult = Settings.System.putInt(content

相关文章:

Android Settings 设置项修改

Settings 设置项 在 Android 系统上,WRITE_SETTINGS 这个权限从 API 1 就已经开始有了。 通过在 app 中设置权限 android.permission.WRITE_SETTINGS 允许 app 读/写 系统设置。 在官方文档的描述中,还有一段注意事项: Note: If the app targets API level 23 or higher,…...

Windows远程桌面到Ubuntu

在Ubuntu系统中&#xff0c;默认情况下root账户是被禁用的&#xff0c;为了安全起见&#xff0c;建议不要直接使用root账户登录图形界面。但是&#xff0c;如果出于特定的管理或维护需求&#xff0c;您可以按照以下步骤启用和使用root账户登录图形界面&#xff1a; 启用root账户…...

解释 RESTful API,以及如何使用它构建 web 应用程序(AI)

RESTful API&#xff08;Representational State Transfer&#xff09;是一种基于HTTP协议的软件架构风格&#xff0c;用于构建可扩展、可维护和可重用的网络服务。 RESTful API的特点包括&#xff1a; 1. 基于资源&#xff1a;每个API都代表一个或多个资源&#xff0c;这些资…...

NestJs:处理身份验证和授权

使用 Nest.js 开发项目时&#xff0c;处理身份验证和授权是常见的需求&#xff0c;可以采用以下架构和实现方式。 架构 用户认证模块 (Auth Module): 服务 (Service): 处理用户登录逻辑&#xff0c;生成 JWT&#xff08;JSON Web Token&#xff09;&#xff0c;以及验证 token…...

Java EE规范

1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE&#xff0c;即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后&#xff0c;就改名成为Java EE。一般来说&#xff0c;企业级应用具备这些特征&#xff1a;1、数据量特别大&…...

Ollama及其Open-WebUI部署更新

目录 1 安装ollama 2 安装Open-WebUI 2.1 不使用容器安装open-webui 2.2 使用Docker安装open-webui 2.3 基于docker升级open-webui 1 安装ollama curl -fsSL https://ollama.com/install.sh | sh启动、关闭ollama systemctl start ollama systemctl stop ollama sys…...

手写 | 设计模式

这里写目录标题 观察者 vs 发布订阅 观察者 vs 发布订阅 参考代码 观察者模式&#xff0c;一对多&#xff0c;两个角色&#xff1a;观察者observer和被观察者/主题Subject。 Subject维护一个数组&#xff0c;记录有哪些Observer&#xff1b;通过调自身的noticefy方法&#xf…...

基于深度学习的地形分类与变化检测

基于深度学习的地形分类与变化检测是遥感领域的一个关键应用&#xff0c;利用深度学习技术从卫星、无人机等地球观测平台获取的遥感数据中自动分析地表特征&#xff0c;并识别地形的变化。这一技术被广泛应用于城市规划、环境监测、灾害预警、土地利用变化分析等领域。 1. 地形…...

进程、线程、协程

文章目录 前言一、易混概念1.1 同步vs异步1.2 并发vs并行 二、进程&#xff08;Process&#xff09;2.1进程概念2.2 进程三个基本状态2.3多进程方式编程 三、线程&#xff08;Thread&#xff09;3.1 线程的引入3.2 线程概念3.3 多线程编程3.4 GIL对多线程的影响3.5 GIL是否意味…...

嵌入式工程师成长之路(1)——元件基础(完整版)

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、认识元件①、认识元件②、认识封装二、电阻1.上拉电阻与下拉电阻①、定义②、应用③、阻值选择④、因上下拉电…...

在Ubuntu 20.04 上安装 CoppeliaSim

在 Ubuntu 20.04 上安装 CoppeliaSim Edu V4.6.0 rev18 的步骤如下&#xff1a; 1. 下载安装文件: 首先&#xff0c;确保您已经下载了 CoppeliaSim_Edu_V4_6_0_rev18_Ubuntu20_04.tar.xz 文件。您可以从 Coppelia Robotics 的官方网站下载。 2. 解压缩文件: 打开终端&#…...

pulseaudio的相关操作(二)

这篇文章主要介绍pulseaudio playback的相关API&#xff0c;pulseaudio playback的具体实例可以参考[2]。如果用pulseaudio实现playback&#xff0c;简单地说就是创建一个playback stream&#xff0c;然后指定这个stream的sink&#xff0c;再定期的向这个stream中写数据。 mai…...

Selenium自动化测试工具

一 .Selenium简介 是一个用于Web应用程序测试的工具 Selenium的核心功能之一是测试软件在不同浏览器和操作系统上的兼容性&#xff0c;确保软件功能与用户需求的一致性&#xff0c;提升用户体验。 自动化脚本生成与执行 Selenium支持自动录制用户操作并生成多种编程语言的测…...

优化UVM环境(九)-将interface文件放在env pkg外面

书接上回&#xff1a; 优化UVM环境&#xff08;八&#xff09;-整理project_common_pkg文件 My_env_pkg.sv里不能包含interface&#xff0c;需要将my_intf.sv文件放在pkg之外...

mysql 主从安装

登录看第二篇 WINDOWS系统搭建MYSQL 8.0主从模式_windows mysql8.0.34主从配置-CSDN博客 Windows下MySQL8.0最新版本超详细安装教程_windowsserver安装mysql8.0-CSDN博客 启动两个服务 可执行文件路径一致问题解决&#xff1a; windows&#xff0c;同一台机器安装两个mysq…...

【C++刷题】力扣-#121-买卖股票的最佳时机

题目描述 给定一个数组 prices&#xff0c;其中 prices[i] 表示第 i 天的股票价格。假设你可以在第 i 天买入并在第 j 天卖出股票&#xff08;i ≤ j&#xff09;&#xff0c;设计一个算法来计算你所能获取的最大利润。注意你只能持有一股股票&#xff0c;并且你不能同时参与多…...

Python量化交易(二):金融市场的基础概念

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的Python量化交易学习总结文档&#xff1b;在现代社会中&#xff0c;投资已成为个人、机构和政府追求财富增长和资源配置的重要方式。…...

Java方法的递归调用

Java中的方法可以通过调用自身来实现递归调用。 递归调用在解决一些问题时非常有用&#xff0c;特别是那些可以分解为相同结构的子问题的情况。递归调用可以让问题的解决过程更加简洁和优雅。 下面是一个简单的示例&#xff0c;展示了如何使用递归调用来计算一个数字的阶乘&a…...

JavaScript 第30章:综合项目

看起来您想要了解如何在一个JavaScript为主的项目中进行项目规划、技术选型、开发流程以及维护等方面的内容&#xff0c;并且希望结合Java的源代码来进行详细的讲解。不过&#xff0c;JavaScript和Java是两种不同的编程语言&#xff0c;通常它们的应用场景也不同。JavaScript 主…...

GB/T28181-2022规范解读、应用场景和技术实现探究

GB/T28181-2022和GB/T28181-2016区别 GB/T28181-2022《公共安全视频监控联网系统信息传输、交换、控制技术要求》与 GB/T28181-2016 相比&#xff0c;主要有以下区别&#xff1a; 术语和定义方面&#xff1a; 术语删减&#xff1a;GB/T28181-2022 删除了 “联网系统信息”“数…...

卡尔曼滤波中的‘信任度’分配:从高斯分布乘积公式看估计与观测谁更重要

卡尔曼滤波中的‘信任度’分配&#xff1a;从高斯分布乘积公式看估计与观测谁更重要 在机器人定位或金融时间序列预测中&#xff0c;我们常常面临一个核心问题&#xff1a;当预测值和观测值都存在不确定性时&#xff0c;如何决定更信任哪一个&#xff1f;这不仅仅是数学问题&a…...

5个核心功能:彻底掌握Nexus Mods App模组管理技巧

5个核心功能&#xff1a;彻底掌握Nexus Mods App模组管理技巧 【免费下载链接】NexusMods.App Home of the development of the Nexus Mods App 项目地址: https://gitcode.com/gh_mirrors/ne/NexusMods.App Nexus Mods App是一款革命性的游戏模组管理器&#xff0c;专为…...

从零开始将Taotoken接入现有Nodejs项目实践步骤

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 从零开始将Taotoken接入现有Nodejs项目实践步骤 1. 准备工作&#xff1a;获取API密钥与模型信息 在开始代码改造之前&#xff0c;…...

从28纳米HKMG工艺到GPU逆向工程:深度解析AMD Radeon HD 7970的芯片设计与技术遗产

1. 项目概述&#xff1a;一次对经典显卡的深度技术考古对于很多老玩家和硬件爱好者来说&#xff0c;AMD Radeon HD 7970是一个绕不开的名字。它不仅是AMD&#xff08;或者说&#xff0c;收购了ATI之后的AMD&#xff09;在2012年投下的一颗重磅炸弹&#xff0c;更是在显卡发展史…...

哔哩下载姬DownKyi:B站视频下载的终极免费解决方案

哔哩下载姬DownKyi&#xff1a;B站视频下载的终极免费解决方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff…...

技术人必备的Chrome插件清单:第7个让调试效率翻倍

对于软件测试从业者而言&#xff0c;浏览器早已不是单纯的信息浏览窗口&#xff0c;而是集接口调试、性能分析、元素定位、辅助功能验证于一体的核心工作站。面对日益复杂的Web应用和紧迫的交付周期&#xff0c;一套精悍的Chrome插件组合往往能带来远超预期的效率回报。本文从测…...

LMQL:用编程语言精准控制大语言模型输出,告别提示词玄学

1. 项目概述&#xff1a;当自然语言成为编程语言如果你和我一样&#xff0c;既对大型语言模型&#xff08;LLM&#xff09;的能力感到兴奋&#xff0c;又对如何精准、可控地调用它们感到头疼&#xff0c;那么你肯定遇到过这样的场景&#xff1a;你向ChatGPT或Claude提出一个复杂…...

可观测性技术栈选型指南:从Prometheus到OpenTelemetry的实践路径

1. 项目概述&#xff1a;一个可观测性技术栈的“藏宝图”如果你正在构建或维护一个现代化的、需要高可靠性的软件系统&#xff0c;那么“可观测性”这个词对你来说一定不陌生。它早已超越了传统的监控&#xff0c;成为确保系统健康、快速定位问题的核心能力。然而&#xff0c;当…...

Docker 部署 XiuXianGame 文字修仙游戏:极空间 NAS 上随时挂机刷资源

前言 挂机刷资源&#xff0c;躺平修成仙。 这类文字修仙游戏&#xff0c;说白了就是佛系养成为主&#xff0c;不用时刻盯着&#xff0c;挂着就行。但问题是——大多数要么得在本地电脑跑&#xff0c;要么依赖第三方平台&#xff0c;体验受限。把这套东西跑在自己的 NAS 上&am…...

iOS设备支持文件管理解决方案:如何解决Xcode开发环境兼容性问题

iOS设备支持文件管理解决方案&#xff1a;如何解决Xcode开发环境兼容性问题 【免费下载链接】iOSDeviceSupport All versions of iOS Device Support 项目地址: https://gitcode.com/gh_mirrors/ios/iOSDeviceSupport iOSDeviceSupport项目为iOS开发者提供了全面的设备支…...