¿Cómo crear una aplicación Android con sólo 1 broadcastreceiver?

Estoy tratando de crear una aplicación en Android que se compone de sólo 1 broadcastreceiver (y nada más).

El broadcastreceiver debe simplemente capturar la emisión (por ejemplo mensaje SMS recibido, registrar la información y terminar). Sin embargo, me di cuenta de que la difusión no es capturado por el receptor, a menos que indique que tengo actividad principal como el siguiente AndroidManifest.xml mostrará:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name="com.myapp.MyBroadcastReceiver" > <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> <activity android:name="com.myapp.MainActivity" android:label="@string/activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Ni siquiera tengo que tener una clase de actividad dentro de la aplicación. Además, si elimino android.intent.category.LAUNCHER o android.intent.action.MAIN en el filtro de intenciones, tampoco lo hace. El comportamiento es el mismo en mi teléfono y el emulador que están ejecutando android 4.2

Mi clase Broadcastreceiver se ve así:

 public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context,intent.getAction(),Toast.LENGTH_SHORT).show(); } } 

¿No es posible tener una aplicación con sólo un broadcastreceiver?

A partir de Android 3.1 (API 12), la aplicación no puede recibir transmisiones hasta que un componente de interfaz de usuario de una aplicación (una actividad) haya sido abierto manualmente por el usuario al menos una vez. Incluso si la fuerza del usuario detiene la aplicación, lo mismo se aplica.

Referencia: http://developer.android.com/about/versions/android-3.1.html#launchcontrols

¿No deberías hacer un servicio en vez de una aplicación? (Nunca he creado un servicio, pero creo que debería ser más apropiado en su caso)

  • Fuga de receptor de difusión administrada localmente?
  • BOOT_COMPLETED no funciona en Android
  • GetBoolean (EXTRA_NO_CONNECTIVITY) siempre devuelve false
  • Escuchar el acceso a la ubicación desactivar / activar en la configuración
  • Registro y cancelación del registro de BroadcastReceiver en un fragmento
  • Comprobar resultCode en BroadcastReceiver de Android?
  • Intercepción de SMS de Android sin icono de notificación o mensajes WAP-PUSH
  • Cómo probar BOOT_COMPLETED receptor de emisión en emulador
  • Recibir la misma intención difundió varias veces pero sólo envió una vez
  • Iniciar la pantalla Actividad incluso si la pantalla está bloqueada en Android
  • Invocar a un receptor en establecer el fondo de pantalla en vivo en android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.