2013-06-29 14 views
5

Ci sono molte applicazioni di blocco delle chiamate per dispositivi mobili, come NQ Call Blocker. Ma in queste applicazioni, se aggiungiamo un numero alla lista nera, il chiamante sentirà "Tono occupato". Anche il chiamante può sentire "Tono di chiamata" per una frazione di secondo. Il che significa che sembrerebbe che stiamo rifiutando la chiamata intenzionalmente.Come rendere il numero non raggiungibile (simile al blocco delle chiamate)?

Ora, sto cercando di sviluppare un'applicazione di blocco delle chiamate che può inviare "Tono non raggiungibile" invece di "Tono occupato" ... ??

Ad esempio, chiamare il cellulare da un altro numero, quando squilla, provare a cambiare la modalità in "Modalità aereo". Sentirai "Tono non raggiungibile". [Possibile in alcuni dispositivi Android, premi a lungo il pulsante di accensione e attiva "Modalità aereo", quando il telefono squilla.]

risposta

2

Si potrebbe provare a implementare un PhoneStateListener e quando si riceve una chiamata si confronta con la matrice di numeri, se è vietato si passa alla modalità Airplaine. Qualcosa di simile a questo:

case TelephonyManager.CALL_STATE_RINGING: // incoming call 
{ 
    for (int i = 0; i < forbiddenNumber.size; i++) { 
     if (incomingNumber.equals(forbiddenNumber[i])) { 
      // read the airplane mode setting 
      boolean isEnabled = Settings.System.getInt(
        getContentResolver(), 
        Settings.System.AIRPLANE_MODE_ON, 0) == 1; 

      // toggle airplane mode 
      Settings.System.putInt(getContentResolver(), 
        Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 
          : 1); 

      // Post an intent to reload 
      Intent intent = new Intent(
        Intent.ACTION_AIRPLANE_MODE_CHANGED); 
      intent.putExtra("state", !isEnabled); 
      sendBroadcast(intent); 

     } 
    } 

Non dimenticare il permesso di WRITE_SETTINGS

5

Il segnale "Non raggiungibile" non viene inviato dal telefono. Invece, viene inviato dal tuo operatore.

Quando il numero non è raggiungibile, significa letteralmente che la torre cellulare non può raggiungerti. Quindi quando qualcuno ti chiama, la torre prova a trovarti, e se non può inviare il segnale "Non Raggiungibile" lungo la linea. Non puoi fingere uno e inviarlo dal tuo dispositivo.

3

Poiché non è possibile farlo, come fa notare Raghav, la tua prossima linea di pensiero sarà quella di simulare i toni di controllo del DTMF della portante, ad es. rete occupata, numero di telefono disconnesso, ecc.

Scoprirai presto che la tua app non può farlo ... non può "simulare" toni DTMF sulla linea - né prima che la chiamata abbia una risposta (perché non sei la compagnia telefonica), né dopo aver ricevuto una risposta, che molti considerano una svista da google-android. Molti post qui su entrambi.

Sì, certo che è possibile digitare manualmente i DTMF (o non è possibile chiamare estensioni, inserire numeri di conto, ecc.) È solo che un'APP non può farlo automaticamente ... molto per il fastidio di molti uno sviluppatore PBX. Siamo spiacenti, questo è un peccato per tutti noi ...