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

Android15系统实现刷机防呆功能

最近遇到一个项目,客户要求4G的ddr固件不能刷机到3G的ddr大货主板上来,怕这样出货之后引起投诉。因为本身客户有多个项目在进行,有4G的固件和3G的固件,要求不能进行互刷,至少要进系统后有提示刷错固件。我采用的方法是系统进到桌面Launcher后去获取ddr的容量,判断不对就弹一个不可点击不可消失的弹框,客户也满意接受,具体的代码实现如下:

diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 4e566abddc..cfc23335dc 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -285,6 +285,8 @@ import java.util.function.Predicate;import java.util.function.Supplier;import java.util.stream.Stream;+import android.app.ActivityManager;
+import android.app.AlertDialog;/*** Default launcher application.*/
@@ -595,6 +597,19 @@ public class Launcher extends StatefulActivity<LauncherState>RuleController.getInstance(this).setRules(RuleController.parseRules(this, R.xml.split_configuration));}
+
+        ActivityManager activityManager = (ActivityManager) getSystemService(this.ACTIVITY_SERVICE);
+        long totalMemory = activityManager.getTotalRam();
+        //Log.d("wzh","Laucher_totalMemory = " + totalMemory);
+        if(totalMemory < 2786946304L || totalMemory > 3586946304L) {
+           AlertDialog.Builder builder = new AlertDialog.Builder(this);
+           builder.setTitle("软件错误")
+           .setMessage("内存不对")
+           .setCancelable(false);
+
+           AlertDialog dialog = builder.create();
+           dialog.show();
+        }}protected ModelCallbacks createModelCallbacks() {

http://www.lryc.cn/news/591040.html

相关文章:

  • 【JVM】深入理解 JVM 类加载器
  • MySQL如何解决事务并发的幻读问题
  • JVM 内存分配与垃圾回收策略
  • macOS 字体管理全攻略:如何查看已安装字体及常见字体格式区
  • 网络编程7.17
  • JAVA中的Collection集合及ArrayList,LinkedLIst,HashSet,TreeSet和其它实现类的常用方法
  • MyBatis延迟加载(Lazy Loading)之“关联查询”深度解析与实践
  • 【44】MFC入门到精通——MFC 通过Button按钮添加控件变量实现:按下 按钮变色 (比如开关 打开关闭状态) MFC更改button控颜色
  • 数据结构-2(链表)
  • 基于STM32闭环步进电机控制系统设计说明
  • Leaflet地图交互:实现图形与点的同时高亮效果
  • PyTorch生成式人工智能(18)——循环神经网络详解与实现
  • 【Linux基础知识系列】第五十一篇 - Linux文件命名规范与格式
  • Mac 安装及使用sdkman指南
  • Java 大视界 -- Java 大数据在智能交通智能公交站台乘客流量预测与服务优化中的应用(349)
  • Flask+LayUI开发手记(十一):选项集合的数据库扩展类
  • Java 集合框架详解:Collection 接口全解析,从基础到实战
  • 【LeetCode 热题 100】108. 将有序数组转换为二叉搜索树
  • 【Redis 】看门狗:分布式锁的自动续期
  • 如何用Kaggle免费GPU
  • [yotroy.cool] Git 历史迁移笔记:将 Git 项目嵌入另一个仓库子目录中(保留提交记录)
  • 语雀编辑器内双击回车插入当前时间js脚本
  • 【WRFDA第六期】WRFDA 输出文件详述
  • R语言基础| 基本图形绘制(条形图、堆积图、分组图、填充条形图、均值条形图)
  • Spring AI之Prompt开发
  • Web攻防-PHP反序列化Phar文件类CLI框架类PHPGGC生成器TPYiiLaravel
  • Cursor开发步骤
  • 【C++指南】C++ list容器完全解读(四):反向迭代器的巧妙实现
  • 113:路径总和 II
  • Java学习--JVM(2)