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!
- ¿Cómo puedo seleccionar un contacto del registro de llamadas?
- Interfaz de devolución de llamada simulada
- Finalizar la llamada en android mediante programación
- ¿Cómo reproducir archivos de audio cuando se inicia la llamada?
- Android: IntentService: cómo: pasar la devolución de llamada en IntentService de la actividad?
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.
- Llamar aResumo en la actividad de Android
- Servidor JSCallback cerrado: detener devoluciones de llamada
- Quiero leer registros de llamadas en el android
- Cómo configurar el tono de timbre con RingtoneManager.ACTION_RINGTONE_PICKER?
- Música de fondo para la llamada
- Cómo bloquear llamadas en android
- ¿Cómo hacer una llamada de video mediante programación en Android 2.2 o superior?
- Intención de ser despedido cuando termina una llamada?
Probar esto http://androidsourcecode.blogspot.in/2010/10/blocking-incoming-call-android.html está trabajando i'v intentado
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.
- Opciones y mejores prácticas para publicar la versión gratuita y de pago de la misma aplicación en Android Market
- Barra de búsqueda de mapas en Google Maps v2