如何在android中以编程方式检查哪个sim设置为默认sim

Dev*_*ine 5 java reflection android

我试图检查我的移动设备是否是双卡,如果sim1准备就绪,如果sim2准备就绪,我使用java反射完成,现在我想知道sim1是否正在发光,如果sim2是正在发光,如果它的双SIM卡,默认设置为sim.是否可以借助java反射.

IB'*_*B's 6

你可以这样做:

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;
    }
Run Code Online (Sandbox Code Playgroud)