2015-08-19 40 views
4

我想檢查如果我的移動設備是雙SIM卡,如果SIM1準備就緒,如果SIM2準備就緒,我已完成使用Java反射,現在我想知道如果sim1是漫遊,並且如果sim2是漫遊,並且它的雙SIM卡設置爲默認值。有沒有可能與java反射的幫助。如何檢查哪個SIM設置爲默認模擬安卓程序

+0

也許你看[這裏](http://stackoverflow.com/questions/13472951/get-both-sim-numbers-in-a-dual- sim-android-phone) – MrT

+0

任何人都可以告訴我如何使用getDefaultSim()方法。我正在嘗試使用它,但它返回null。 –

+0

TelephonyManager:getDefaultSim是sim1。這出現在我的LogCat文件中,我可以從LogCat文件中以編程方式讀取它。 –

回答

4

你可以做這樣的事情:

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; 
    } 
+0

非常感謝IB的。它非常有幫助。併爲我工作。 –

+0

總是得到0,如果我選擇默認的SIM卡撥打電話/選定的第二張SIM卡。 –