2014-01-28 4 views

Antwort

3

Endlich habe ich die Lösung mit diesem Code. Ich hoffe, es sollte hilfreich für alle sein, die mit Dual-SIM-Telefonen umgehen wollen. Es funktioniert gut für mich.

Bitte fügen Sie unten Codes in Ihrer BroadcastReceiver Klasse:

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

es funktioniert nicht auf Samsung-Gerät. –

+0

@MehulJoisar, Danke für Ihre Info. Ich habe im XOLO-Gerät getestet. Es funktioniert gut in den neuesten Dual-SIM-Karten. Es funktioniert auch nicht in Mein Karbonn-Gerät. Damit wird der eingehende Anruf SIM in Android nicht gut dokumentiert. Aber ich habe versucht, es funktioniert mit diesem Code bundle.getInt ("simId"). Aber ich fand, dass einige Geräte nicht funktionieren. Jetzt versuche ich eine gute konsistente Lösung zu finden. Wenn Sie bessere Lösungen haben, teilen Sie es uns bitte mit. Danke – Jeba

+0

@Jeba, Danke es funktioniert in Android 4.2.2. Du hast meine Zeit gerettet. Danke Jeba. –

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

ist es funktioniert nicht auf 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); 
    } 

diese eingehende Nummer geben, an welchen Geräten ist Dual-SIM-oder Single.

+0

Dies ist nicht die Frage gestellt .. –