如何识别Samsung设备中sim1或sim2的来电

时间:2018-07-02 02:37:51

标签: android samsung-mobile dual-sim incoming-call

如何查明哪个SIM卡正在Samsung设备中接收来电。

通过此解决方案,我可以在某些设备中找到它:

我为来话呼叫注册了一个广播接收器:

  @Override
public void onReceive(Context context, Intent intent) {
 getRingingSimSlot(intent);
}

我发现女巫sim正在使用附加数据接收呼叫:

  private static int getRingingSimSlot(Intent intent) {
int slot = -1;
try {
  Bundle bundle = intent.getExtras();
  if (bundle != null) {
    Set<String> keySet = bundle.keySet();
    for (String key : keySet) {
      Log.d(G.TAG, "key=>" + key);

      switch (key) {
        case "slot":
          slot = bundle.getInt("slot", -1);
          break;
        case "simId":
          slot = bundle.getInt("simId", -1);
          break;
        case "simSlot":
          slot = bundle.getInt("simSlot", -1);
          break;
        case "slot_id":
          slot = bundle.getInt("slot_id", -1);
          break;
        case "simnum":
          slot = bundle.getInt("simnum", -1);
          break;
        case "slotId":
          slot = bundle.getInt("slotId", -1);
          break;
        case "slotIdx":
          slot = bundle.getInt("slotIdx", -1);
          break;
        default:
          if (key.toLowerCase().contains("slot") | key.toLowerCase().contains("sim")) {
            String value = bundle.getString(key, "-1");
            if (value.equals("0") | value.equals("1") | value.equals("2")) {
              slot = bundle.getInt(key, -1);
            }
          }


      }
    }
    Log.d(G.TAG, "slot=>" + slot);

  }

} catch (Exception e) {
  Log.d(G.TAG, "Exception=>" + e);

}


return slot;
}

它可以在某些设备上使用,但不能在Samsung手机上使用。在三星中,来电keySet中的所有intent都是:

incoming_number
state

0 个答案:

没有答案