How to figure out which SIM received SMS in Dual SIM Android Device

后端 未结 3 1757
迷失自我
迷失自我 2020-12-09 05:46

I\'m working on a project to sync sms received in a Android phone to a online database. I can get sender\'s number by calling getOriginatingAddress() method. Bu

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-09 06:26

    I used Levente Püsök 's answer with a little change. But I did not test on all devices.

    try {
    Bundle bundle = intent.getExtras();
    int slot = -1;
    if (bundle != null) {
    Set keySet = bundle.keySet();
    for(String key:keySet){
      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("slot", "slot=>"+slot);
    
     }
    
    }catch (Exception e){
    Log.d(TAG, "Exception=>"+e);
     }
    

提交回复
热议问题