Come controllare quale sim è impostato come sim predefinito in android in modo programmato

Sto cercando di verificare se il mio dispositivo è dual sim, se sim1 è pronto, se sim2 è pronto, sono fatto con questo utilizzando la riflessione java, ora voglio scoprire se sim1 isRoaming e se sim2 isRoaming e se il suo dual sim che sim è impostato come predefinito. È ansible con l'aiuto della riflessione java.

  • Android: passare la function di riferimento a AsyncTask
  • Errore durante l'innalzamento della class com.google.ads.AdView
  • PreferenceFragment.findPreference restituisce sempre NULL
  • Imansible convertire da android.support.v4.app.Fragment a android.app.Fragment
  • Elementi non visualizzati in ActionBar con showAsAction = "sempre"
  • Strano NullPointerException in Spinner
  • One Solution collect form web for “Come controllare quale sim è impostato come sim predefinito in android in modo programmato”

    Puoi fare qualcosa di simile:

    public int getDefaultSimmm(Context context) { Object tm = context.getSystemService(Context.TELEPHONY_SERVICE); Method method_getDefaultSim; int defaultSimm = -1; try { method_getDefaultSim = tm.getClass().getDeclaredMethod("getDefaultSim"); method_getDefaultSim.setAccessible(true); defaultSimm = (Integer) method_getDefaultSim.invoke(tm); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Method method_getSmsDefaultSim; int smsDefaultSim = -1; try { method_getSmsDefaultSim = tm.getClass().getDeclaredMethod("getSmsDefaultSim"); smsDefaultSim = (Integer) method_getSmsDefaultSim.invoke(tm); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return smsDefaultSim; } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.