在双卡 phone 中调用 telephonyMananger.getSimSerialNumber() 时检查哪个 SIM 插槽?
Which SIM slot is checked when telephonyMananger.getSimSerialNumber() is called in a dual sim phone?
我需要SIM序列号来识别SIM卡以进行申请。单卡码很简单 phones,
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
sim_ID = telephonyManager.getSimSerialNumber();
但是,当我在双 SIM 卡上测试时 phone 它变得很奇怪,因为我不能确定返回的序列号是来自插槽 1 还是插槽 2。有没有办法同时获得sim序列号?或者我能否以任何方式识别调用上述代码时哪个 Sim 插槽返回序列号?
P.S。我不需要 IMEI 号码或 IMSI 号码。我特别需要 SIM 序列号 (SSN)。
检查这个。
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
SubscriptionManager manager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> infoList = manager.getActiveSubscriptionInfoList();
for (int i = 0; i < infoList.size(); i++) {
SubscriptionInfo info = infoList.get(i);
//info.getSimSlotIndex() <- sim card slot number
//info.getNumber() <- sim card phone number (if exist, you can set this in sim card management)
}
对于API等级>=22
可以使用
SubscriptionManager class(添加到 API 级别 22,https://developer.android.com/reference/android/telephony/SubscriptionManager)
SubscriptionManager sManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)
SubscriptionInfo infoSim1 = sManager.getActiveSubscriptionInfoForSimSlotIndex(0);
SubscriptionInfo infoSim2 = sManager.getActiveSubscriptionInfoForSimSlotIndex(1);
对于 API 级别 <= 21
对于单 SIM 卡:TelephonyManager.getSimSerialNumber()
对于双卡:这取决于 phone 的制造商。
API 21 级以下的双 SIM 卡 Sim Serial Number
没有确定的方法。
我需要SIM序列号来识别SIM卡以进行申请。单卡码很简单 phones,
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
sim_ID = telephonyManager.getSimSerialNumber();
但是,当我在双 SIM 卡上测试时 phone 它变得很奇怪,因为我不能确定返回的序列号是来自插槽 1 还是插槽 2。有没有办法同时获得sim序列号?或者我能否以任何方式识别调用上述代码时哪个 Sim 插槽返回序列号?
P.S。我不需要 IMEI 号码或 IMSI 号码。我特别需要 SIM 序列号 (SSN)。
检查这个。
TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
SubscriptionManager manager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> infoList = manager.getActiveSubscriptionInfoList();
for (int i = 0; i < infoList.size(); i++) {
SubscriptionInfo info = infoList.get(i);
//info.getSimSlotIndex() <- sim card slot number
//info.getNumber() <- sim card phone number (if exist, you can set this in sim card management)
}
对于API等级>=22
可以使用 SubscriptionManager class(添加到 API 级别 22,https://developer.android.com/reference/android/telephony/SubscriptionManager)
SubscriptionManager sManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)
SubscriptionInfo infoSim1 = sManager.getActiveSubscriptionInfoForSimSlotIndex(0);
SubscriptionInfo infoSim2 = sManager.getActiveSubscriptionInfoForSimSlotIndex(1);
对于 API 级别 <= 21
对于单 SIM 卡:TelephonyManager.getSimSerialNumber()
对于双卡:这取决于 phone 的制造商。
API 21 级以下的双 SIM 卡 Sim Serial Number
没有确定的方法。