我正在创建一个最低 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/