@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); mScreen = getPreferenceManager().createPreferenceScreen(this); setPreferenceScreen(mScreen); mDefaultTelephonyManager = MmsApp.getApplication().getTelephonyManager(); mTelephonyManagers = new ArrayList<TelephonyManager>(2); mTelephonies = new ArrayList<ITelephony>(2); int phoneCount = mDefaultTelephonyManager.getPhoneCount(); for (int i = 0; i < phoneCount; ++i) { TelephonyManager tm = MmsApp.getApplication().getTelephonyManager(i); mTelephonyManagers.add(tm); if (tm.hasIccCard() && tm.getSimState() == TelephonyManager.SIM_STATE_READY) { ITelephony telephony = ITelephony.Stub.asInterface( ServiceManager.getService( PhoneFactory.getServiceName(Context.TELEPHONY_SERVICE, i))); mTelephonies.add(telephony); } else { mTelephonies.add(null); // just act as a place holder in the list } } Intent intent = getIntent(); mMode = intent.getIntExtra(Mode.KEY, Mode.NIL); switch (mMode) { case Mode.MANAGE_MSG: handleManageSimMsg(); break; case Mode.SMSC: handleSMSC(); break; default: finish(); } }