List of usage examples for android.telephony SubscriptionManager getActiveSubscriptionInfoList
@SuppressAutoDoc
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
public List<SubscriptionInfo> getActiveSubscriptionInfoList()
From source file:android_network.hetnet.vpn_service.Util.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) public static String getSubscriptionInfo(Context context) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) return "Not supported"; if (!hasPhoneStatePermission(context)) return "No permission"; StringBuilder sb = new StringBuilder(); SubscriptionManager sm = SubscriptionManager.from(context); sb.append("Slots ").append(sm.getActiveSubscriptionInfoCount()).append('/') .append(sm.getActiveSubscriptionInfoCountMax()).append("\r\n"); int dataid = -1; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) dataid = sm.getDefaultDataSubscriptionId(); int voiceid = -1; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) voiceid = sm.getDefaultVoiceSubscriptionId(); List<SubscriptionInfo> subscriptions = sm.getActiveSubscriptionInfoList(); if (subscriptions != null) for (SubscriptionInfo si : subscriptions) sb.append("SIM ").append(si.getSimSlotIndex() + 1).append('/').append(si.getSubscriptionId()) .append(' ').append(si.getCountryIso()).append('/').append(si.getMcc()).append(si.getMnc()) .append(' ').append(si.getCarrierName()) .append(si.getSubscriptionId() == dataid ? " D" : "") .append(si.getSubscriptionId() == voiceid ? " V" : "") .append(si.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE ? " R" : "") .append("\r\n"); if (sb.length() > 2) sb.setLength(sb.length() - 2);/*from w ww .j ava 2 s.com*/ return sb.toString(); }
From source file:com.android.contacts.database.SimContactDaoImpl.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) private List<SimCard> getSimCardsFromSubscriptions() { final SubscriptionManager subscriptionManager = (SubscriptionManager) mContext .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE); final List<SubscriptionInfo> subscriptions = subscriptionManager.getActiveSubscriptionInfoList(); final ArrayList<SimCard> result = new ArrayList<>(); for (SubscriptionInfo subscriptionInfo : subscriptions) { result.add(SimCard.create(subscriptionInfo)); }//from w w w. j a v a2 s. c o m return result; }
From source file:com.techno.jay.codingcontests.Home.java
private void getDeviceImei() { mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String deviceid = mTelephonyManager.getDeviceId(); String mPhoneNumber = mTelephonyManager.getLine1Number(); // String xxx = mTelephonyManager.getCellLocation().toString(); //Log.d("msg/num/location", "DeviceImei " + deviceid+mPhoneNumber); str_cellNumber = mPhoneNumber;//from w ww . j a v a 2 s. c o m str_IMEI = deviceid; //str_IMEI="358223078419310";// this is for emulator code only so please comment for real time debug. sharepref.edit().putString(Const.IMEI_DEVICE, str_IMEI).commit(); try { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { SubscriptionManager subManager = (SubscriptionManager) getSystemService( Context.TELEPHONY_SUBSCRIPTION_SERVICE); List<SubscriptionInfo> subInfoList = null; subInfoList = subManager.getActiveSubscriptionInfoList(); if (subInfoList != null && subInfoList.size() > 0) { switch (subInfoList.size()) { case 2: simTwoNumber = subInfoList.get(1).getNumber(); case 1: simOneNumber = subInfoList.get(0).getNumber(); break; default: break; } } //Log.d("SIm numbers",simOneNumber+simTwoNumber); } } catch (Exception e) { e.printStackTrace(); } }
From source file:com.master.metehan.filtereagle.Util.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP_MR1) public static String getSubscriptionInfo(Context context) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) return "Not supported"; if (!hasPhoneStatePermission(context)) return "No permission"; StringBuilder sb = new StringBuilder(); SubscriptionManager sm = SubscriptionManager.from(context); TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); sb.append("Slots ").append(sm.getActiveSubscriptionInfoCount()).append('/') .append(sm.getActiveSubscriptionInfoCountMax()).append("\r\n"); int dataSubId; try {/*from w w w . j a v a2 s. c om*/ dataSubId = Settings.Global.getInt(context.getContentResolver(), "multi_sim_data_call", -1); } catch (Throwable ignored) { dataSubId = -1; } Method getNetworkCountryIso = null; Method getNetworkOperator = null; Method getNetworkOperatorName = null; Method getDataEnabled = null; try { getNetworkCountryIso = tm.getClass().getMethod("getNetworkCountryIsoForSubscription", int.class); getNetworkOperator = tm.getClass().getMethod("getNetworkOperatorForSubscription", int.class); getNetworkOperatorName = tm.getClass().getMethod("getNetworkOperatorName", int.class); getDataEnabled = tm.getClass().getMethod("getDataEnabled", int.class); getNetworkCountryIso.setAccessible(true); getNetworkOperator.setAccessible(true); getNetworkOperatorName.setAccessible(true); getDataEnabled.setAccessible(true); } catch (NoSuchMethodException ex) { Log.w(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); } List<SubscriptionInfo> subscriptions = sm.getActiveSubscriptionInfoList(); if (subscriptions != null) for (SubscriptionInfo si : subscriptions) { sb.append("SIM ").append(si.getSimSlotIndex() + 1).append('/').append(si.getSubscriptionId()) .append(' ').append(si.getCountryIso()).append('/').append(si.getMcc()).append(si.getMnc()) .append(' ').append(si.getCarrierName()) .append(si.getDataRoaming() == SubscriptionManager.DATA_ROAMING_ENABLE ? " R" : "") .append(si.getSubscriptionId() == dataSubId ? " *" : "").append("\r\n"); if (getNetworkCountryIso != null && getNetworkOperator != null && getNetworkOperatorName != null && getDataEnabled != null) try { sb.append("Network ").append(si.getSimSlotIndex() + 1).append('/') .append(si.getSubscriptionId()).append(' ') .append(getNetworkCountryIso.invoke(tm, si.getSubscriptionId())).append('/') .append(getNetworkOperator.invoke(tm, si.getSubscriptionId())).append(' ') .append(getNetworkOperatorName.invoke(tm, si.getSubscriptionId())) .append(sm.isNetworkRoaming(si.getSubscriptionId()) ? " R" : "").append(' ') .append(String.format("%B", getDataEnabled.invoke(tm, si.getSubscriptionId()))) .append("\r\n"); } catch (IllegalAccessException | InvocationTargetException ex) { Log.w(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex)); } } if (sb.length() > 2) sb.setLength(sb.length() - 2); return sb.toString(); }
From source file:com.android.settings.sim.SimSelectNotification.java
@Override public void onReceive(Context context, Intent intent) { final TelephonyManager telephonyManager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); final SubscriptionManager subscriptionManager = SubscriptionManager.from(context); final int numSlots = telephonyManager.getSimCount(); // Do not create notifications on single SIM devices or when provisioning i.e. Setup Wizard. // or User selection of fallback user preference is disabled. if (numSlots < 2 || !Utils.isDeviceProvisioned(context) || !SystemProperties.getBoolean("persist.radio.aosp_usr_pref_sel", false)) { Log.d(TAG, " no of slots " + numSlots + " provision = " + Utils.isDeviceProvisioned(context)); return;//from w ww . j a v a 2 s .co m } // Cancel any previous notifications cancelNotification(context); // If sim state is not ABSENT or LOADED then ignore String simStatus = intent.getStringExtra(IccCardConstants.INTENT_KEY_ICC_STATE); if (!(IccCardConstants.INTENT_VALUE_ICC_ABSENT.equals(simStatus) || IccCardConstants.INTENT_VALUE_ICC_LOADED.equals(simStatus))) { Log.d(TAG, "sim state is not Absent or Loaded"); return; } else { Log.d(TAG, "simstatus = " + simStatus); } int state; for (int i = 0; i < numSlots; i++) { state = telephonyManager.getSimState(i); if (!(state == TelephonyManager.SIM_STATE_ABSENT || state == TelephonyManager.SIM_STATE_READY || state == TelephonyManager.SIM_STATE_UNKNOWN)) { Log.d(TAG, "All sims not in valid state yet"); return; } } List<SubscriptionInfo> sil = subscriptionManager.getActiveSubscriptionInfoList(); if (sil == null || sil.size() < 1) { Log.d(TAG, "Subscription list is empty"); return; } // Clear defaults for any subscriptions which no longer exist subscriptionManager.clearDefaultsForInactiveSubIds(); boolean dataSelected = SubscriptionManager .isUsableSubIdValue(SubscriptionManager.getDefaultDataSubscriptionId()); boolean smsSelected = SubscriptionManager .isUsableSubIdValue(SubscriptionManager.getDefaultSmsSubscriptionId()); // If data and sms defaults are selected, dont show notification (Calls default is optional) if (dataSelected && smsSelected) { Log.d(TAG, "Data & SMS default sims are selected. No notification"); return; } // Create a notification to tell the user that some defaults are missing createNotification(context); if (sil.size() == 1) { // If there is only one subscription, ask if user wants to use if for everything Intent newIntent = new Intent(context, SimDialogActivity.class); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.PREFERRED_PICK); newIntent.putExtra(SimDialogActivity.PREFERRED_SIM, sil.get(0).getSimSlotIndex()); context.startActivity(newIntent); } else if (!dataSelected) { // If there are mulitple, ensure they pick default data Intent newIntent = new Intent(context, SimDialogActivity.class); newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, SimDialogActivity.DATA_PICK); context.startActivity(newIntent); } }