我有一款带有2个SIM卡的安卓手机,我想要检测来电的目标——它是针对SIM卡1还是SIM卡2的。是否可以从通话信息中获取目标号码?
我有一款带有2个SIM卡的安卓手机,我想要检测来电的目标——它是针对SIM卡1还是SIM卡2的。是否可以从通话信息中获取目标号码?
最终我使用了这段代码找到了解决方案。希望它对想要处理双卡手机的每个人都有所帮助。它对我来说运行良好。
请在您的BroadcastReceiver类中添加以下代码:
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 == "0"){
// Incoming call from SIM1
}
else if(callingSIM =="1"){
// Incoming call from SIM2
}
}
}
add below codes in your BroadcastReceiver class.
public class IncomingCallInterceptorReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String callingFromSIM = "";
Bundle bundle = intent.getExtras();
callingFromSIM =String.valueOf(bundle.getInt("simId", -1));
if(callingFromSIM == "0"){
// Incoming call from SIM1 Card
}
else if(callingFromSIM =="1"){
// Incoming call from SIM2 Card
}
}
}
Bundle bundle = intent.getExtras();
String state = bundle.getString(TelephonyManager.EXTRA_STATE);
if (state != null){
callFromSecondSimNo = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
}
这将提供传入号码,无论设置是双卡还是单卡。