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

【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 out

Change-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 issue

Change-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 issue

Change-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 unused
         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,
@@ -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


  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值