¿Bloquear SMS entrantes en Android con Android 4.4 o superior?
De acuerdo con el doc :
Tenga en cuenta que, a partir de Android 4.4, cualquier intento de su aplicación para abortar la transmisión SMS_RECEIVED_ACTION se ignorará para que todas las aplicaciones interesadas tengan la oportunidad de recibirla.
Por lo que sólo la aplicación por defecto de SMS puede hacerlo y parece que nada se cambia con Android 5.0 (debido a la razón desconocida, de acuerdo con el problema se marca como obsoleto).
¿Hay alguna manera de bloquear los SMS entrantes para la aplicación de SMS no predeterminada si el teléfono está enraizado (esto es necesario para la aplicación de bloqueo de spam)? ¿Cómo hacerlo?
- Uso del nuevo proveedor de contenido de Telephony para leer SMS
- Obtener mensajes SMS desde la tarjeta SIM
- Tarjeta dual sim enviar sms android
- Cómo desactivar mi aplicación sms como aplicación predeterminada en Android
- SGS-3 bug relacionado con la lista de conversaciones SMS?
- Android: Marcar mensaje de texto (SMS) no leído
- Android - ¿Crear SMS de la API despreciada de PDU?
- Verificar el usuario durante la suscripción enviando y recibiendo sms a través de Twilio
Puede escribir un servicio que reemplace a CarrierMessagingService . Si el enlace a esto es correcto, el mensaje no se entrega a la aplicación principal.
BIND_CARRIER_MESSAGING_SERVICE
permiso BIND_CARRIER_MESSAGING_SERVICE
necesario para registrarse como servicio de mensajería de operador requiere que la aplicación sea la aplicación del sistema. Por lo que necesita para empujar su aplicación en el sistema.
Haga de su aplicación el proveedor de SMS predeterminado. Entonces puede registrarse para SMS_DELIVER_ACTION. En ese receptor, puede elegir escribir el SMS a la base de datos o no. Si decide no hacerlo, el SMS es básicamente ignorado. Si lo desea, cualquier otra aplicación puede recibir el SMS.
Puede probar la siguiente solución:
Iterar a través de la lista de paquetes capaces de manejar SMS y deshabilitarlos mediante programación.
Para obtener una API para deshabilitar una aplicación, tendrá que convertirse en una aplicación de socio de MDM (Mobile Device Management). OEM proporciona API adicionales a sus aplicaciones de socio de MDM para controlar el dispositivo. Por ejemplo, samsung proporciona api para deshabilitar la aplicación específica. También tienen API para controlar el permiso de aplicaciones específicas.
Alternativamente, supongo que el nuevo modo Android Device / Profile Owner debe tener una API para deshabilitar aplicaciones específicas.
- Cómo ocultar un icono de la aplicación en el emulador de Android?
- Tiempo inactivo de actividad para ActivityRecord