/** * Returns subscription that were set via {@link #setActiveSubscriptionInfoList} if it can find * one with the specified slot index or null if none found. */ @Implementation(minSdk = N) protected SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int slotIndex) { if (subscriptionList == null) { return null; } for (SubscriptionInfo info : subscriptionList) { if (info.getSimSlotIndex() == slotIndex) { return info; } } return null; }
/** * Returns subscription that were set via {@link #setActiveSubscriptionInfoList} if it can find * one with the specified slot index or null if none found. */ @Implementation(minSdk = N) protected SubscriptionInfo getActiveSubscriptionInfoForSimSlotIndex(int slotIndex) { if (subscriptionList == null) { return null; } for (SubscriptionInfo info : subscriptionList) { if (info.getSimSlotIndex() == slotIndex) { return info; } } return null; }
@Override public void register() { if (telephonyManager != null) { try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1 && subscriptionManager != null) { if (networkListener == null) { int index = 0; for (SubscriptionInfo info : subscriptionManager.getActiveSubscriptionInfoList()) { if (info.getSimSlotIndex() > index) { networkListener = new NetworkListener(info.getSubscriptionId()); index = info.getSimSlotIndex(); } } } } if (networkListener != null) telephonyManager.listen(networkListener, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); } catch (Exception e) { e.printStackTrace(); Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); } } isRegistered = true; }
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) private void fillDualSimList(PreferenceScreen preferenceScreen) { PreferenceCategory category = (PreferenceCategory) preferenceScreen.findPreference("sms_category"); ListPreference preference = (ListPreference) category.findPreference(Preferences.DUALSIM_SIM); List<String> simIds = new ArrayList<>(); List<String> simNames = new ArrayList<>(); simIds.add(String.valueOf(Preferences.VALUE_DEFAULT_SIM)); simNames.add(getString(R.string.sim_default)); SubscriptionManager subscriptionManager = SubscriptionManager.from(getActivity()); for (SubscriptionInfo subscriptionInfo : subscriptionManager.getActiveSubscriptionInfoList()) { simIds.add(String.valueOf(subscriptionInfo.getSubscriptionId())); simNames.add(getString(R.string.sim_name, subscriptionInfo.getSimSlotIndex() + 1, subscriptionInfo .getDisplayName())); } preference.setEntries(simNames.toArray(new String[simNames.size()])); preference.setEntryValues(simIds.toArray(new String[simIds.size()])); preference.setDefaultValue(String.valueOf(Preferences.VALUE_DEFAULT_SIM)); preference.setSummary(preference.getEntry()); }
for (SubscriptionInfo si : subscriptions) sb.append("SIM ") .append(si.getSimSlotIndex() + 1) .append('/') .append(si.getSubscriptionId())