首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从多个sim设备和e-sim设备获取sim国家ISO

从多个sim设备和e-sim设备获取sim国家ISO
EN

Stack Overflow用户
提问于 2019-12-05 18:27:59
回答 1查看 196关注 0票数 1

在通常情况下,当用户的设备具有物理SIM卡时,我会通过以下代码获取国家/地区文化代码:

代码语言:javascript
复制
TelephonyManager manager = (TelephonyManager) cxt.getSystemService(Context.TELEPHONY_SERVICE);
    //getNetworkCountryIso
    if (manager != null && manager.getSimCountryIso() != null) {
        return manager.getSimCountryIso().toLowerCase();
    }

但是当设备中有两个sims时,上面的代码会发生什么呢?当设备持有电子SIM卡而不是实体SIM卡时,我如何获得国家ISO代码。

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 14:47:23

你的代码会得到SIM卡的国家ISO,它位于插槽1,它不会关心其他SIM卡插槽。

为了读取所有的SIM卡插槽,通过调用SubscriptionManager.getSubscriptionId()获得SIM卡订阅,它将返回一组subscription ID's,因为我们知道安卓对多SIM卡的支持完全基于制造商,在谷歌安卓中,如果是双卡/多SIM卡,你可以更新你的TelephonyManager,如下所示:

代码语言:javascript
复制
subIds[] = SubscriptionManager.getSubscriptionIds(slotInex) //Pass slot index ex: 0,1 etc

for(int i=0;i<subIds.lenth();i++){

 if (SubscriptionManager.isActiveSubscriptionId(subIds[i])){
       TelephonyManager manager = telephonyManager.createForSubscriptionId(subIds[i]);
        if (manager != null && manager.getSimCountryIso() != null) {
           System.out.println(manager.getSimCountryIso().toLowerCase());
      }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59193086

复制
相关文章

相似问题

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