Abortar / Cancelar transmisiones

Lo que quiero: Quiero ser el primero en recibir la emisión de SMS y quiero cancelar la transmisión si el SMS es de mi interés solamente, de modo que la transmisión no llegue a ninguna otra aplicación / receptor (aplicación de mensajería predeterminada, etc.) . Lo que sé es:

  • SmsDisptacher.java usa orderedBroadcasts que pueden ser cancelados / abortados.

Lo que no sé es:

  • Si ordenado, las cancelaciones pueden ser canceladas para otras aplicaciones / receptores, es decir, que no sean usted mismo.

Lo que he intentado por ser el primero en recibir el Broadcast:

  • Intent-filter android: priority = "1000"

Lo que he intentado para cancelar la difusión ya:

  • AbortBroadcast ();
  • BroadcastReceiver.setResultCode (RESULT_CANCELED)
  • ClearAbortBroadcast ()

Ciertamente es posible. Registre su receptor en su manifiesto de la siguiente manera:

<receiver android:name=".SmsReceiver"> <intent-filter android:priority="1000"> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> 

En el método onReceive del receptor escribe:

 @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(SMS_RECEIVED)) { //do your stuff abortBroadcast(); } } 

Recuerde configurar el permiso para recibir mensajes sms en el manifiesto de la siguiente manera:

 <uses-permission android:name="android.permission.RECEIVE_SMS"/> 

Sin el permiso correcto, fallará silenciosamente con el siguiente mensaje logcat:

 07-13 12:54:13.208: WARN/ActivityManager(201): Permission Denial: receiving Intent { act=android.provider.Telephony.SMS_RECEIVED (has extras) } to com.mypackage requires android.permission.RECEIVE_SMS due to sender com.android.phone (uid 1001) 

Por último, es posible que otra aplicación haya registrado un receptor con una prioridad aún mayor que la suya, y que por lo tanto recibe la transmisión antes de cancelarla. Así que si todo falla, intente experimentar con valores de prioridad más alta.

Es posible hacer eso, hice un tutorial comprobarlo por favor aquí y aquí acaba de abortar la emisión en la parte superior de la jerarquía

  • Bloquear llamadas entrantes y sms en android
  • Cómo eliminar un SMS de la bandeja de entrada en Android mediante programación?
  • Android - enviar sms en un hilo separado
  • Diálogo de confirmación de Android SMS
  • Transmitir datos de la clase BroadcastReceiver a una actividad de Android
  • Interceptar, leer y cancelar el mensaje SMS
  • ¿Cómo enviar SMS desde la aplicación Android sin hacer su registro en la vista SMS del dispositivo?
  • ¿Cómo leer el mensaje entrante usando el servicio en segundo plano en android?
  • Diferenciar los informes de entrega de dos SMS separados
  • URL de SMS en Android
  • Android: escucha los mensajes SMS entrantes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.