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

展锐Android13禁止用户使用超级省电

1、打开/packages/apps/Settings/res/xml/power_usage_summary.xml,找到

...........................................
<SwitchPreferenceandroid:key="super_power_saving_mode"android:title="@string/super_power_saving_mode"settings:controller="com.android.settings.fuelgauge.SuperPowerSavingPreferenceController" />
........................................

2、根据com.android.settings.fuelgauge.SuperPowerSavingPreferenceController,查找到代码文件/packages/apps/Settings/src_unisoc/com/android/settings/fuelgauge/SuperPowerSavingPreferenceController.java。并修改changeEnabled方法的代码,根据设定系统属性,判断是否置灰设置里面的超级省电开关。

 private void changeEnabled(Preference preference){//add code...........String custom=SystemProperties.get("persist.sys.custom","").trim();        if (custom.length()!=0){switch (custom){case "XXX1":           case "XXX2":if(preference != null ){preference.setEnabled(false);}return;default:break;}}//add endboolean isEnabled = false ;if (mPluggedIn || mInUltraPowerSaveMode || isLockTaskModePinned()) {isEnabled = false ;} else {isEnabled = true ;}if(preference != null ){preference.setEnabled(isEnabled);}}

2、打开/vendor/sprd/platform/frameworks/base/packages/SystemUI/src-unisoc/com/unisoc/systemui/qs/tiles/SuperBatteryTile.java,禁止从下拉状态栏修改

(1)修改handleClick方法,防止点击

 @Overrideprotected void handleClick(@Nullable View view) {//add code.........String custom= SystemProperties.get("persist.sys.custom","").trim();      if (custom.length()!=0) {switch (custom) {case "XXX1":case "XXX2":              return;default:break;}}//add end............if (getState().state == Tile.STATE_UNAVAILABLE) {return;}       setBatterySaveMode();}

(2)修改handleLongClick方法,防止长按

@Overrideprotected void handleLongClick(@Nullable View view) {//add code.........String custom= SystemProperties.get("persist.sys.custom","").trim();      if (custom.length()!=0) {switch (custom) {case "XXX1":case "XXX2":              return;default:break;}}//add end............if (UnisocPowerManagerUtil.isSuperPower()) {return;}super.handleLongClick(view);}

(3)修改handleUpdateState,更改按钮状态

  @Overrideprotected void handleUpdateState(BooleanState state, Object arg) {state.icon = ResourceIcon.get(R.drawable.ic_qs_battery_super_save);state.label = mContext.getString(R.string.super_battery_detail_switch_title);state.contentDescription = state.label;   state.state = isCharging() ? Tile.STATE_UNAVAILABLE : Tile.STATE_INACTIVE;//add code........String custom= SystemProperties.get("persist.sys.custom","").trim();      if (custom.length()!=0) {switch (custom) {case "XXX1":case "XXX2":              state.state = Tile.STATE_UNAVAILABLE;break;default:break;}}//add end..........}

http://www.xdnf.cn/news/4339.html

相关文章:

  • 新一代Python专业编译器Nuitka简介
  • ROS2:自定义接口文件(无废话)
  • 多模态理论知识
  • 二叉树与堆排序(概念|遍历|实现)
  • python酒店在线预定管理系统-酒店客房管理系统-快捷酒店入住系统
  • 【Linux系统】vim编辑器的使用
  • FoMo 数据集是一个专注于机器人在季节性积雪变化环境中的导航数据集,记录了不同季节(无雪、浅雪、深雪)下的传感器数据和轨迹信息。
  • C语言编程--递归程序--求数组的最大元素值
  • 油气地震资料信号处理中的NMO(正常时差校正)
  • 【网络篇】传输层TCP协议的确认应答,超时重传机制
  • IT咨询——企业数据资产怎样评估
  • 满分PPT | 基于数据运营的新型智慧城市实践与思考智慧城市数据中台解决方案智能建筑与智慧城市建设方案
  • 基于nacos实现动态线程池设计与实践:告别固定配置,拥抱弹性调度
  • LabVIEW与 IMAQ Vision 机器视觉应用
  • C++类与对象基础续
  • 15.命令模式:思考与解读
  • 毫米波雷达原理(最通俗的解释)
  • MATLAB程序演示与编程思路,相对导航,四个小车的形式,使用集中式扩展卡尔曼滤波(fullyCN-EKF)
  • go 编译报错:build constraints exclude all Go files
  • Python使用爬虫ip抓取热点新闻
  • autojspro怎么免费用
  • 【原创分享】魔音变声器内含超多语音包实时变声
  • C#中从本地(两个路径文件夹)中实时拿图显示到窗口中并接收(两个tcp发送的信号)转为字符串显示在窗体中实现检测可视化
  • 【Wandb】搜索框仅支持正则匹配,不接受“tags:“前缀查询
  • 知乎前端面试题及参考答案
  • 【计算机网络】TCP为什么可靠?解决了哪些问题?
  • 数字文明时代开源技术驱动的商业范式重构:基于开源AI大模型、AI智能名片与S2B2C商城小程序源码的协同创新研究
  • GD32F470+CH395Q
  • Odoo 开发:揭秘表单视图中“添加行”按钮的出现条件
  • Netty 是一个基于 Java NIO 的高性能网络通信框架