Rechazar una llamada programáticamente sin un timbre

Estoy creando una aplicación para rechazar llamadas de números específicos sin ni siquiera obtener un solo timbre para la persona que llama.

Tengo un código que rechaza la llamada después de un anillo parcial. Por favor, no diga que esta pregunta se repite. He estado buscando código para rechazar la llamada sin un anillo durante mucho tiempo todavía no encontrar la solución. ¡Ayudarme amablemente!

public void onReceive(Context context, Intent intent) { Bundle b = intent.getExtras(); incommingNumber = b.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); for(int i=0;i<blockedNumbers.length;i++) { if(incommingNumber.equalsIgnoreCase(blockedNumbers[i])) { TelephonyManager telephony = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); try { Class c = Class.forName(telephony.getClass().getName()); Method m = c.getDeclaredMethod("getITelephony"); m.setAccessible(true); telephonyService = (ITelephony) m.invoke(telephony); telephonyService.silenceRinger(); telephonyService.endCall(); } catch (Exception e) { e.printStackTrace(); } } } } 

Este es el código que he utilizado para rechazar la llamada. Pero rechaza con un solo anillo.

Creo que tienes que llamar a:

SetResultData (null);

Haciendo así usted "mata" el mensaje que es pasado encendido a través de todos los receptores.

Si esto no ayuda, debe tratar de encontrar una manera de darle al receptor una prioridad más alta en el sistema, de modo que pueda asumir el control y establecer los datos de resultado en nulo para todas las llamadas de receptor posteriores.

Usted tiene que definir la prioridad en el manifiesto .. por ejemplo:

  <receiver android:name=".CallReceiver"> <intent-filter android:priority="100"> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> 

Utilice estos permisos en el archivo de manifiesto android;

 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

El primer permiso "MODIFY_PHONE_STATE" es muy importante, ya que se encarga de inhabilitar el tono del teléfono durante la llamada. Cuando alguien te llame, en ese momento su teléfono mostrará un TIPO FLASH del no entrante. Sin timbre.

Este trabajo en mi final. Dime si encontró algún problema.

  • Cómo definir devoluciones de llamada en Android?
  • Android cómo obtener el número de emergencia para llamar
  • Detectando la llamada saliente y el evento de hangup de llamada en android
  • ContentResolver.insert devuelve null
  • Barra de notificación de Android abrir última actividad activa?
  • Rechazo de la llamada entrante en android
  • Trigger touch callout en iOS / android
  • Cómo detectar el estado contestado o rechazado en la llamada saliente
  • Añadir PhoneStateListener
  • Cómo crear contestador automático para Android
  • Android 4.0.3 y actividad final
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.