如何查明哪个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