首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Android中的双SIM设备配置EAP-SIM

为Android中的双SIM设备配置EAP-SIM
EN

Stack Overflow用户
提问于 2015-11-24 10:24:06
回答 1查看 988关注 0票数 4

我尝试过为单个SIM设备配置EAP-SIM,并成功地连接到了.现在,我想在双SIM设备上配置一个特定的SIM卡。

我的观察是,在单个SIM设备中配置EAP时,没有规定指定SIM标识。那么,如何使用特定的SIM配置EAP呢?

为单个SIM设备配置EAP-SIM:

代码语言:javascript
复制
    WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig();
    WifiConfiguration wifiConfig = new WifiConfiguration();
    wifiConfig.SSID = "\"" + ssid + "\"";
    wifiConfig.allowedKeyManagement.set(KeyMgmt.WPA_EAP);
    wifiConfig.allowedKeyManagement.set(KeyMgmt.IEEE8021X);
    enterpriseConfig.setEapMethod(WifiEnterpriseConfig.Eap.SIM);
    wifiConfig.enterpriseConfig = enterpriseConfig;
    int nid = wifi.addNetwork(wifiConfig);
    wifi.saveConfiguration();
    wifi.enableNetwork(nid, true);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-08 07:49:24

这个答案对我有很大帮助。

How to programmatically create and read WEP/EAP WiFi configurations in Android?

这就是如何使用EAP配置Wifi。

代码语言:javascript
复制
        private fun getWifiConfigurationForAirtelEAP(ssId: String,sim:String):WifiConfiguration{
            val wifiConfiguration = WifiConfiguration()
            wifiConfiguration.SSID = String.format("\"%s\"", ssId);
            wifiConfiguration.hiddenSSID = false
            wifiConfiguration.BSSID = null

            wifiConfiguration.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN)

            wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP)
            wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP)
            wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104)
            wifiConfiguration.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40)

            wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP)
            wifiConfiguration.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.IEEE8021X)

            wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP)
            wifiConfiguration.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP)

            wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.RSN)
            wifiConfiguration.allowedProtocols.set(WifiConfiguration.Protocol.WPA)

            wifiConfiguration.enterpriseConfig = getWifiEnterpriseConfig(sim)

            return wifiConfiguration
        }

        private fun getWifiEnterpriseConfig(sim: String): WifiEnterpriseConfig {
            val enterpriseConfig = WifiEnterpriseConfig()
            enterpriseConfig.eapMethod = WifiEnterpriseConfig.Eap.SIM
            enterpriseConfig.anonymousIdentity = "NULL"
            val field = enterpriseConfig.javaClass.getDeclaredField("mFields");
            field.isAccessible =true
            val values = (field.get(enterpriseConfig) as HashMap<String,String>)
            values.put(SIM_NUM,"\""+sim+"\"")
            values.put(CLIENT_CERT,"NULL")
            values.put(KEY_ID,"NULL")
            values.put(ENGINE,"0")
            values.put(ENGINE_ID,"NULL")
            values.put(IDENTITY,"NULL")
            values.put(CA_PATH,"NULL")
            values.put(DOMAIN_SUFFIX_MATCH,"NULL")
            values.put(CA_CERT,"NULL")
            values.put(PASSWORD,"NULL")
            values.put(ANONYMOUS_IDENTITY,"NULL")
            return enterpriseConfig
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33891083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档