簡體   English   中英

Android雙SIM卡->更改網絡

[英]Android dual SIM -> change network

從 SDK 22 開始,Android 正式支持 Dual-SIM 並提供了一些文檔。

我想知道應用程序是否可以更改 SIM 應訪問網絡的位置。 例如,我有一部運行 Nougat 的一加一 3T 手機,我使用兩張 SIM 卡。 進入設置,我可以手動更改/選擇用於訪問網絡的 SIM 卡。

有可能做到這一點嗎?

謝謝 !

我為 Android 7.1.1 API 25 找到的解決方案是使用 SubscriptionManager 和反射 api。

請注意,您必須在 /system/priv-app/ 中安裝您的應用程序

您可以通過 adb root 執行此操作。

確保您的 AndroidManifest.xml 中有

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>

代碼如下

這段代碼唯一要做的就是交換 sim 數據

private Integer subActual = null;
private Integer sim1 = null;
private Integer sim2 = null;
private SubscriptionInfo simInfo1;
private SubscriptionInfo simInfo2;
private Boolean dualSim;

SubscriptionManager subscriptionManager = SubscriptionManager.from(this);

    @SuppressLint("MissingPermission")
    List smList = subscriptionManager.getActiveSubscriptionInfoList();

    Method[] smMethods = subscriptionManager.getClass().getMethods();

    dualSim = smList.size() == 2;

    if (dualSim) {
        simInfo1 = (SubscriptionInfo) smList.get(0);
        simInfo2 = (SubscriptionInfo) smList.get(1);
        sim1 = simInfo1.getSubscriptionId();
        sim2 = simInfo2.getSubscriptionId();
    }

    for (Method m : smMethods) {
        if (m.getName().equals(("getDefaultDataSubscriptionId"))) {
            try {
                subActual = (int) m.invoke(subscriptionManager);
            } catch (Exception e) {

            }
        }
    }

    for (Method m : smMethods) {
        if (m.getName().equals("setDefaultDataSubId") && dualSim) {
            try {
                if (subActual == sim1) {
                    m.invoke(subscriptionManager, sim2);
                }
                if (subActual == sim2) {
                    m.invoke(subscriptionManager, sim1);
                }
            } catch (Exception e) {

            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM