Sto lavorando a un'applicazione in cui devo sovrascrivere lo SCHERMO DI CHIAMATA IN ENTRATA.Sposta lo schermo di chiamata in entrata predefinito in background su TelephonyManager.CALL_STATE_RINGING in Android
Quando il dispositivo riceve una chiamata, devo mostrare un popup della mia domanda. Ho fatto una ricerca dettagliata su questo compito. CALL POPOUT è un'applicazione che utilizza la stessa funzionalità, ma non ricevo il codice sorgente.
Attualmente sto avendo pochi moduli con cui possiamo ottenere l'azione di INCOMING CALL.
public class MyPhonestateListner extends PhoneStateListener {
Context context;
List<String> blockedNumberList = new ArrayList<String>();
BlockDataSource datasourceobj;
public MyPhonestateListner(Context context) {
super();
this.context = context;
}
@Override
public void onCallStateChanged(int state, String callingNumber) {
super.onCallStateChanged(state, callingNumber);
callingNumber = callingNumber.replace(" ", "");
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
// handle out going call
// if(blockedNumberList.contains(callingNumber))
endCallIfBlocked(callingNumber);
break;
case TelephonyManager.CALL_STATE_RINGING:
// handle in coming call
new Handler().postDelayed(new Runnable() {
public void run() {
Intent intentPhoneCall = new Intent("android.intent.action.CALL");
intentPhoneCall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentPhoneCall);
}
}, 10);
// if(blockedNumberList.contains(callingNumber))
//endCallIfBlocked(callingNumber);
// ActivityManagerNative.getDefault().moveTaskToBack(i);
//android.app.ActivityManager.RunningTaskInfo runningtaskinfo = TaskUtil.getPresentTaskInfo(this);
break;
default:
break;
}
}
}
MY reciever
public class BlockReciever extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("I am reciever");
TelephonyManager telephony = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
MyPhonestateListner listener = new MyPhonestateListner(context);
telephony.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
}
}
Con l'aiuto di codice di cui sopra, sto ottenendo la schermata della mappa della mia applicazione sulla parte superiore CALL SCREEN, ma solo per SECONDI MICRO pochi e la chiamata SCHERMO IN ARRIVO arriva in cima. DEVO NASCONDERE LA SCHERMATA DELLA CHIAMATA quando il dispositivo riceve una chiamata e deve mostrare lo schermo della mia applicazione.
Si prega di suggerire.
Hey @ Sam-in-TechValens, siete riusciti a risolvere questo alla fine? – Nikola