BOOT_COMPLETED no funciona en Android

En primer lugar, sé que ha habido cientos de este tipo de pregunta, pero he estado comprobando todos por un tiempo y todavía no podía encontrar ninguna solución.

He visto esta respuesta dijo BOOT_COMPLETED no enviar a la aplicación a menos que el usuario iniciar su primera aplicación, después de Android versión 3.1 Pero todavía veo algunas aplicaciones están haciendo eso, debe haber una manera. Realmente necesito manejarlo, de lo contrario también estoy en contra de hacer algo sin la interacción del usuario.

Así que aquí está mi AndroidManifest:

<manifest ... > <!-- to be activated service on boot is completed --> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <!-- Keeps the processor from sleeping when a message is received. --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application ... > <!-- to receive data when boot completed --> <receiver android:name="myPackage.BootReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> </manifest> 

Gracias por adelantado.

Edit: No hay mucho que ver en mi broadcastreceiver, pero a quien se requiere aquí es:

 package myPackage public class BootReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Utils.LogI("BootReceiver", "BootReceiver received!"); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { // Do my stuff } } } 

Esto a continuación trabajó para mí

AndroidManifest.xml

 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application> <receiver android:name=".BootCompletedReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver> <service android:name="NotifyingDailyService" > </service> 

BootCompletedReceiver.class

 public class BootCompletedReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { // TODO Auto-generated method stub Log.w("boot_broadcast_poc", "starting service..."); context.startService(new Intent(context, NotifyingDailyService.class)); } } 

Clase de servicio

  public class NotifyingDailyService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public int onStartCommand(Intent pIntent, int flags, int startId) { // TODO Auto-generated method stub Toast.makeText(this, "NotifyingDailyService", Toast.LENGTH_LONG).show(); Log.i("com.example.bootbroadcastpoc","NotifyingDailyService"); return super.onStartCommand(pIntent, flags, startId); } } 

Y para los dispositivos Htc, agregue com.htc.intent.action.QUICKBOOT_POWERON

  <receiver android:enabled="true" android:name=".receivers.BootUpReceiver"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.BOOT_COMPLETED"/> <action android:name="android.intent.action.QUICKBOOT_POWERON"/> <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/> </intent-filter> </receiver> 

Algunas nuevas tabletas y dispositivos Android tienen aplicación de seguridad de forma predeterminada. Algunas veces estas aplicaciones bloquean su modo de inicio automático. Un ejemplo de esta aplicación segura es MyAsus manager. Así que puedes agregar "permitir inicio automático" a tus aplicaciones

El problema es con el dispositivo. Algunos dispositivos solo permiten que las aplicaciones internas reciban esta acción (ejemplo: Android 5.1).

Puede agregar esto a su filtro de intención como trabajo alrededor

Acción android: name = "android.intent.action.USER_PRESENT" />

Esto se activa cuando el usuario desbloquea el dispositivo.

  • evitando un bloqueo cuando alguien monta una tarjeta SD de Android
  • Receptor de transmisión para comprobar la conexión a Internet en la aplicación Android
  • ¿Cómo utilizo la acción de intento USER_PRESENT?
  • BroadcastReceivers en ICS
  • Extras de Android PendingIntent, no recibidos por BroadcastReceiver
  • Android pasa los datos de Actividad a BroadcastReceiver muestra null
  • Instancia diferente de Applicationcontext en Broadcastreceiver
  • Android: ¿por qué se detuvo la notificación de alarma después de reiniciar el sistema
  • Broadcastreceiver para obtener información de ServiceState
  • Cómo repetir la notificación diaria en el tiempo específico en androide a través del servicio de fondo
  • ¿Cómo puedo pasar los datos a Android Market con el nuevo esquema de cromo?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.