¿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)

  • DownloadManager.ACTION_DOWNLOAD_COMPLETE Receptor de difusión que recibe el mismo ID de descarga más de una vez con diferentes estados de descarga en Android
  • SMS reciben sin notificación
  • Android: ejecutando una tarea de fondo con AlarmManager
  • Cómo iniciar el servicio en android sin actividad
  • ¿Cómo obtener la ubicación actual y el tiempo de descolgado de la llamada saliente (tiempo de llamada exacto seleccionado)?
  • Invocar a un receptor en establecer el fondo de pantalla en vivo en android?
  • Detectar cuando el roaming está desactivado en Android
  • Android BroadcastReceiver onReceive () llamado dos veces en Android 5.1.1 incluso después de un registro
  • Android - Iniciar el servicio en el arranque
  • Programáticamente eliminar SMS no funciona
  • BroadcastReceiver en las nuevas instalaciones de la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.