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:
- Límite de Android SMS?
- ¿Cuál es la longitud máxima de sms concatenados en smpp?
- Cómo obtener SMS de borrador en Android 6 Marshmallow
- En Android es posible enviar mensajes SMS a más de un destinatario en el código?
- Recibir SMS en la aplicación para Android
- 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 ()
- Estructura de datos utilizada para mensajes SMS en Android
- Cómo obtener la dirección de un proyecto de SMS
- ¿Cómo reenviar sms a contactos seleccionados a whatsapp desde mi aplicación de Android?
- SMS de confirmación no deseados enviados por el proveedor en Austria
- SMS tipo de Android 0
- ¿Cómo enviar el SMS más de 160 caracteres?
- Android: ¿Cómo enviar unicode sms programatically y recibirlo en el otro lado correctamente?
- Acceso a mensajes SMS en la tarjeta SIM
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
Tengo mi respuesta http://groups.google.com/group/android-developers/browse_thread/thread/78fecbc156f4a1ea No es posible.
- Establecer el logotipo de la barra de herramientas en XML
- Error: Error: Los tipos enteros no están permitidos (en 'layout_height' con el valor '10')