2014-01-28 3 views
6

У меня есть телефон Android с 2-мя SIM-картами, и я хочу определить цель входящего вызова - это для SIM-карты 1 или для SIM-карты 2. Возможно ли получить целевой номер из информации звонка?Определить номер целевого телефона при входящем вызове - это для SIM 1 или для SIM 2?

ответ

3

Наконец-то я получил решение, используя этот код. Надеюсь, это будет полезно для всех, кто хочет обрабатывать телефоны с двумя SIM-картами. Его работа прекрасна для меня.

Пожалуйста, добавьте ниже кодов в классе 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 
    } 
    } 
} 
+0

не работает на устройстве Samsung. –

+0

@MehulJoisar, Спасибо за информацию. Я тестировал устройство XOLO. Его работа прекрасна в последних поединках с SIM-картами. Он также не работает в устройстве My karbonn. Таким образом, получение входящего вызова SIM-карты плохо зарегистрировано в android. Но я попробовал это, используя этот код bundle.getInt («simId»). Но я обнаружил, что это не работает на некоторых устройствах. Так что теперь я пытаюсь найти хорошее последовательное решение. Если у вас есть лучшие решения, поделитесь им с нами. Спасибо – Jeba

+0

@Jeba, Спасибо, отлично работает в Android 4.2.2. Вы спасли мое время. Спасибо Джебе. –

1
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 

} 

} 

} 
+0

, это не работает на android 6.0 – ELITE

-1
Bundle bundle = intent.getExtras(); 
    String state = bundle.getString(TelephonyManager.EXTRA_STATE); 
    if (state != null){ 
     callFromSecondSimNo = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 
    } 

это даст входящий номер, независимо набор двойной сим или одинарный.

+0

Это не вопрос. –

Смежные вопросы