【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】

文章目录

  • 【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】
    • 需求
    • 方案
    • patch
      • framework

【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】

需求

由于3288 硬件上的sim卡座不支持热插拔,是没有顶针来识别sim卡是否被拔掉的。所以在sim被拔掉或者松动的时候,会弹窗出现无sim卡,同时要求你重启。
需要修改系统,来实现取消提示重启的消息弹窗,以及sim卡丢失后,自动重新识别

方案

通过向供应商询问,可以通过在无sim卡的情况下,进入飞行模式,然后退出,sim卡就可以重新进行识别。如果此时wifi连接,那么就不需要进入飞行模式。

patch

framework

From fa7b479a925607574a6c0bc4f2b072317b11b60d Mon Sep 17 00:00:00 2001
From: liangji <liangji@keenon.com>
Date: Mon, 4 Dec 2023 09:58:45 +0800
Subject: [PATCH 2/4] feat: support set airplane mode on when sim card plug outChange-Id: I7bf0179032983ed3ed67c31208e5cf6034c18991
Signed-off-by: liangji <liangji@keenon.com>
---.../android/internal/telephony/uicc/UiccCard.java  | 52 ++++++++++++++++++++++1 file changed, 52 insertions(+)diff --git a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
index f40e7a8..5afc7b3 100644
--- a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
+++ b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
@@ -39,6 +39,8 @@ import android.telephony.TelephonyManager;import android.text.TextUtils;import android.util.LocalLog;import android.view.WindowManager;
+import android.provider.Settings;
+import android.net.wifi.WifiManager;import com.android.internal.telephony.CommandsInterface;import com.android.internal.telephony.PhoneBase;
@@ -307,6 +309,56 @@ public class UiccCard {}log("onIccSwap: isHotSwapSupported is false, prompt for rebooting");+        /*
+         * keenon liangji add
+         * if sim card removed, set airplane mode to re-detect sim card
+         */
+        if(!isAdded) {
+            /*
+             * check wifi status, if wifi connected, do nothing,
+             * else set airplane mode
+             */
+            log("onIccSwap: isAdded is false, sim card has been removed");
+            WifiManager wifiManager = (WifiManager) mContext
+                .getSystemService(Context.WIFI_SERVICE);
+
+            if (wifiManager.isWifiEnabled() &&
+                    wifiManager.getConnectionInfo().getNetworkId() != -1) {
+                /* now wifi connected */
+                log("wifi has connected, do nothing");
+            } else {
+                log("wifi has not connected, set airplane mode");
+
+                /*
+                 * airplane mode reset 4G
+                 * */
+                Settings.Global.putInt(mContext.getContentResolver(),
+                        Settings.Global.AIRPLANE_MODE_ON, 1);
+
+                Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+                intent.putExtra("state", true);
+                mContext.sendBroadcast(intent);
+                log("send broadcast to change airplane mode");
+
+                Handler handler = new Handler();
+                handler.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        Settings.Global.putInt(mContext.getContentResolver(),
+                                Settings.Global.AIRPLANE_MODE_ON, 0);
+
+                        Intent intent = new
+                        Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+                        intent.putExtra("state", false);
+                        mContext.sendBroadcast(intent);
+                    }
+                /* disable airplane mode 5s after enable it */
+                }, 5000);
+            }
+            return;
+        }
+        /* keenon liangji add end */
+synchronized (mLock) {// TODO: Here we assume the device can't handle SIM hot-swap//      and has to reboot. We may want to add a property,
-- 
2.7.4
From 674bd7a9d63c2d325d4cb3eef05673a41a596c5a Mon Sep 17 00:00:00 2001
From: liangji <liangji@keenon.com>
Date: Wed, 13 Dec 2023 15:01:46 +0800
Subject: [PATCH 3/4] fix: solve sim_added_title windows issueChange-Id: I2426c46d676aa2c00b3c8c034793fee18cd5cf6c
Signed-off-by: liangji <liangji@keenon.com>
---.../src/java/com/android/internal/telephony/uicc/UiccCard.java         | 3 ++-1 file changed, 2 insertions(+), 1 deletion(-)diff --git a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
index 5afc7b3..dffa75a 100644
--- a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
+++ b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
@@ -355,8 +355,9 @@ public class UiccCard {/* disable airplane mode 5s after enable it */}, 5000);}
-            return;}
+
+        return;/* keenon liangji add end */synchronized (mLock) {
-- 
2.7.4
From f81bc2ee3f6a9d659f9d1ac65b83563efc38d511 Mon Sep 17 00:00:00 2001
From: liangji <liangji@keenon.com>
Date: Wed, 13 Dec 2023 16:04:25 +0800
Subject: [PATCH 4/4] fix: solve build issueChange-Id: I287c9e4c7cecc0572bfa437b68db3f5b5eb9127e
Signed-off-by: liangji <liangji@keenon.com>
---.../src/java/com/android/internal/telephony/uicc/UiccCard.java          | 2 ++1 file changed, 2 insertions(+)diff --git a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
index dffa75a..7f5f053 100644
--- a/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
+++ b/opt/telephony/src/java/com/android/internal/telephony/uicc/UiccCard.java
@@ -360,6 +360,7 @@ public class UiccCard {return;/* keenon liangji add end */+        /* keenon liangji disabled because unusedsynchronized (mLock) {// TODO: Here we assume the device can't handle SIM hot-swap//      and has to reboot. We may want to add a property,
@@ -402,6 +403,7 @@ public class UiccCard {dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);dialog.show();}
+        */}protected Handler mHandler = new Handler() {
-- 
2.7.4

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

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

相关文章

云计算市场分析

目录 一、云计算市场概述 1.1 概述 二、国外云计算厂商 2.1 亚马逊AWS 2.2 微软AzureAzure 2.3 Apple iCloud 三、国内云计算厂商 3.1 阿里云 3.2 腾讯云 3.3 华为云 3.4 百度智能云 一、云计算市场概述 1.1 概述 云计算从出现以来&#xff0c;其发展就非常迅速。以…

win10重装Ubuntu22.04安装报错复盘

目录 一&#xff1a;补充启动盘制作 二&#xff1a;错误信息[0xC0030570] The file or directory is corrupted and unreadable. 三&#xff1a;ubuntu重装步骤&#xff1a; 四&#xff1a;磁盘冗余阵列 五&#xff1a;尝试将SCS11(2,0.0), 第1分区(sda)设备的一个vfat文…

大华智慧园区综合管理平台 /ipms/barpay/pay RCE漏洞复现

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

springboot kafka 实现延时队列

好文推荐&#xff1a; 2.5万字详解23种设计模式 基于Netty搭建websocket集群实现服务器消息推送 2.5万字讲解DDD领域驱动设计 文章目录 一、延时队列定义二、应用场景三、技术实现方案&#xff1a;1. Redis2. Kafka3. RabbitMQ4. RocketMQ 四、Kafka延时队列背景五、Kafka延时队…

锐捷VSU和M-LAG介绍

参考网站 堆叠、级联和集群的概念 什么是堆叠&#xff1f; 框式集群典型配置 RG-S6230[RG-S6501-48VS8CQ]系列交换机 RGOS 12.5(4)B1005版本 配置指南 总结 根据以上的几篇文章总结如下&#xff1a; 级联&#xff1a;简单&#xff0c;交换机相连就叫级联&#xff0c;跟搭…

ES6 Proxy详解

文章目录 概述Proxy 实例的方法get(target, propKey, receiver)set(target, propKey, value, receiver)has(target, propKey)deleteProperty(target, propKey)defineProperty(target, propKey, propDesc)getOwnPropertyDescriptor(target, propKey)getPrototypeOf(target)setPr…

鸿蒙 WiFi 打开流程

这里鸿蒙的代码使用的是开源鸿蒙HarmonyOS 4.0的代码基线 这里我们是针对手机平台代码分析&#xff0c;首先界面部分代码都在&#xff1a;applications/standard/settings/product/phone 然后我们只关心WiFi相关的&#xff0c;看界面代码applications/standard/settings/produc…

HCIA--路由优先级实验

要求&#xff1a; 1. pc1访问pc3,4,5走上面&#xff0c;R1-R2实现备份21.1.1.0/24实现备份&#xff1b; 2. pc3,4,5,6访问pc1,2走下面&#xff0c; R3,4之间实现等价路由&#xff0c;尽量减少路由条目&#xff0c;实现全网可达&#xff0c;pc7代表运营商 所有pc均可访问 1…

5.0 ZooKeeper 数据模型 znode 结构详解

数据模型 在 zookeeper 中&#xff0c;可以说 zookeeper 中的所有存储的数据是由 znode 组成的&#xff0c;节点也称为 znode&#xff0c;并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 …

阅读笔记——《RapidFuzz: Accelerating fuzzing via Generative Adversarial Networks》

【参考文献】Ye A, Wang L, Zhao L, et al. Rapidfuzz: Accelerating fuzzing via generative adversarial networks[J]. Neurocomputing, 2021, 460: 195-204.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&#xff0c;请联系作者删除。 目录 摘要 一、介绍 二、相关…

寒假作业-day4

1>请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23}&#xff0c;输入key查找的值&#xff0c;实现查找功能。 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> typedef int datatype; type…

C++ PE文件信息解析

尝试解析PE文件结构, 于是编写了此PE信息助手类, 暂时完成如下信息解析 1.导入表信息 2.导入表信息 3.资源表信息 CPEHelper.h #pragma once// // brief: PE文件解析助手类 // copyright: Copyright 2024 FlameCyclone // license: // birth: Created by Visual Studio 20…

springboot 引入netty时,Handler方法中使用@Autowared失效

原因&#xff1a; netty 中无法使用注入的bean&#xff0c;因为NettyClientHandler 是netty启动的时候new出来&#xff0c;并没有交给spring IOC托管&#xff0c;后面给NettyClientHandler 加上Component 注解也不行&#xff0c;因为netty 的加载优于spring容器初始化&#xff…

软件价值8-站点连通性检查

站点连通性检查&#xff0c;即看网站是否能访问得通&#xff0c;实用价值不大&#xff0c;不过用来作软件应用入门还不错。 代码&#xff1a; import urllib.request import tkinter as tkdef test_connectivity():window tk.Tk()window.geometry(600x400)window.resizable(F…

蓝桥杯基础知识6 pair

蓝桥杯基础知识6 pair pair 的定义和结构&#xff1a;在C中&#xff0c;pair是一个模板类&#xff0c;用于表示一对值的组合&#xff0c;头文件<utility>。 pair类 的定义&#xff1a; template<class T1, class T2> struct pair{T1 first; // 第一个值T2 seco…

输出超级玛丽2_题解

【题解提供者】吴立强 解法 思路 本题代码非常简单&#xff0c;直接一行一行对齐后输出即可&#xff0c;只是比较麻烦。 代码展示 #include <iostream> using namespace std;int main() {printf(" ********\n");printf(" …

软件漏洞概念与原理

本文已收录至《全国计算机等级考试——信息 安全技术》专栏 官方定义 漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷&#xff0c;从而可以使攻击者能够在未授权的下访问或破坏系统。 基本理解 漏洞是硬件、软件、协议在生命周期的各个阶段&#xff08;设计…

小程序之一———— 文件重命名

使用python程序对文件进行集体重命名 1&#xff1a;为什么要写这个&#xff1f;2&#xff1a;书写思路3&#xff1a; 程序主体 1&#xff1a;为什么要写这个&#xff1f; 因为收到一堆文件&#xff0c;但是命名方式是 12427823_这是书名.pdf 这样的&#xff0c;不方便查看&…

普通编程,机器学习与深度学习

普通编程&#xff1a;基于人手动设置规则&#xff0c;由输入产生输出经典机器学习&#xff1a;人手工指定需要的特征&#xff0c;通过一些数学原理对特征与输出的匹配模式进行学习&#xff0c;也就是更新相应的参数&#xff0c;从而使数学表达式能够更好的根据给定的特征得到准…

十大排序算法之线性时间比较类排序

线性时间比较类排序 线性时间的算法执行效率也较高&#xff0c;从时间占用上看&#xff0c;线性时间非比较类排序要优于非线性时间排序&#xff0c;但其空间复杂度较非线性时间排序要大一些。因为线性时间非比较类排序算法会额外申请一定的空间进行分配排序&#xff0c;这也是…