107a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvistpackage com.android.server.wifi; 207a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist 307a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvistimport android.content.Context; 407a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvistimport android.telephony.SubscriptionManager; 507a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvistimport android.telephony.TelephonyManager; 607a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist 707f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvistimport java.util.ArrayList; 807f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvistimport java.util.List; 907f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist 1007a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvistpublic class SIMAccessor { 1107a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist private final TelephonyManager mTelephonyManager; 1207a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist private final SubscriptionManager mSubscriptionManager; 1307a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist 1407a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist public SIMAccessor(Context context) { 1507a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist mTelephonyManager = TelephonyManager.from(context); 1607a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist mSubscriptionManager = SubscriptionManager.from(context); 1707a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist } 1807a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist 1907f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist public List<String> getMatchingImsis(IMSIParameter mccMnc) { 2007a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist if (mccMnc == null) { 2107a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist return null; 2207a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist } 2307f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist List<String> imsis = new ArrayList<>(); 2407a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist for (int subId : mSubscriptionManager.getActiveSubscriptionIdList()) { 2507a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist String imsi = mTelephonyManager.getSubscriberId(subId); 2607f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist if (mccMnc.matches(imsi)) { 2707f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist imsis.add(imsi); 2807a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist } 2907a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist } 3007f11f6f2ee7ec17cb08180035dfb5002aaaf5dfJan Nordqvist return imsis.isEmpty() ? null : imsis; 3107a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist } 3207a3f9d97394b97965e6754271fb66c1d6bd1753Jan Nordqvist} 33