我读过很多帖子,尝试过很多解决方案,但所有帖子的共同点是,它们都过时了,至少我找不到一种适用于Android更新版本的解决方案。
员额1,结果:intent.getExtras().getInt("simId", -1)总是返回-1
员额2,结果:intent.getExtras().getInt("slot", -1)总是返回-1
员额3,结果:
String[] array = new String[]{
"extra_asus_dial_use_dualsim",
"com.android.phone.extra.slot",
"slot",
"simslot",
"sim_slot",
"subscription",
"Subscription",
"phone",
"com.android.phone.DialingMode",
"simSlot",
"slot_id",
"simId",
"simnum",
"phone_type",
"slotId",
"slotIdx"
};
for (String item :
array) {
Log.i(TAG, "Sim Card - " + item + " -----> " + intent.getExtras().getInt(item));
}日志:
PhoneCallReceiver: Sim Card - extra_asus_dial_use_dualsim -----> 0
PhoneCallReceiver: Sim Card - com.android.phone.extra.slot -----> 0
PhoneCallReceiver: Sim Card - slot -----> 0
PhoneCallReceiver: Sim Card - simslot -----> 0
PhoneCallReceiver: Sim Card - sim_slot -----> 0
PhoneCallReceiver: Sim Card - subscription -----> 0
PhoneCallReceiver: Sim Card - Subscription -----> 0
PhoneCallReceiver: Sim Card - phone -----> 0
PhoneCallReceiver: Sim Card - com.android.phone.DialingMode -----> 0
PhoneCallReceiver: Sim Card - simSlot -----> 0
PhoneCallReceiver: Sim Card - slot_id -----> 0
PhoneCallReceiver: Sim Card - simId -----> 0
PhoneCallReceiver: Sim Card - simnum -----> 0
PhoneCallReceiver: Sim Card - phone_type -----> 0
PhoneCallReceiver: Sim Card - slotId -----> 0
PhoneCallReceiver: Sim Card - slotIdx -----> 0它为第一个SimCard和第二个SimCard显示相同值为0的相同日志。
我也试过其他类似的帖子。没有人在android的新版本上工作!
还有另一种解决方案,适用于较新版本的Android (7.0或更高版本)吗?
发布于 2020-01-20 21:50:46
发布于 2020-01-14 09:46:25
如果你这样做了,它就会起作用的。确保您的测试设备在Android5.1或更高版本上运行。在V5.1中添加了双sim支持(请检查这里)
public class IncomingCallInterceptor extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String callingSIM = "";
Bundle bundle = intent.getExtras();
callingSIM = String.valueOf(bundle.getInt("simId", -1));
if(callingSIM.equals("0")){
// Incoming call from SIM1
} else if(callingSIM.equals("1")){
// Incoming call from SIM2
}
}
}确保在清单中添加了以下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>注:
这些价值观不需要时时刻刻出现。网络提供者支持是必需的.Please阅读文档这里
当前订阅的载体id。如果订阅不可用或无法识别承运人,则返回UNKNOWN_CARRIER_ID。
https://stackoverflow.com/questions/58889106
复制相似问题