java - 如何从 API 级别 16 的双卡手机 Android 获取运营商名称?

标签 java android telephony telephonymanager

我正在创建一个最低 sdk 版本为 16 的应用程序。我的问题是如何在双卡手机中获取两个运营商的运营商名称。

我使用了这段代码,但它不适用于 sdk v16

TelephonyManager telephonyManager = ((TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE));

我还想以字符串格式获取承运人的名称。

最佳答案

SubscriptionManager 在 API 22 中可用

使用以下代码获取双卡手机的运营商名称

SubscriptionManager subscriptionManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
    List<String> carrierNames = new ArrayList<>();
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
        List<SubscriptionInfo> subscriptionInfos = subscriptionManager.getActiveSubscriptionInfoList();
        for (int i = 0; i < subscriptionInfos.size(); i++) {
            carrierNames.add(subscriptionInfos.get(i).getCarrierName().toString());
        }
    }

关于java - 如何从 API 级别 16 的双卡手机 Android 获取运营商名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41418068/

相关文章:

communication - 当我有同一个 SIP 提供商的多个电话号码时如何路由来电?

c# - 使用 Twilio(或任何其他提供商)在短信中伪造来电显示

java - 为什么 PrepareStatement 没有生成正确的 SQL 查询?

java - 如何使用 SSLSocket 接受带有 Java 的自签名证书

android - 如何在相机预览打开时(以编程方式)保持手电筒打开

java - Android Studio 有错误的 mail.jar 和 additionnal.jar 和 activation.jar

Android:TelephonyManager.getSimSerialNumber() 返回 null

java - 将传统消息生成/队列转换为 react 器中的通量

java - ArrayAdapter 未更新

java - 以批处理模式选择 JDBC SQL