Cómo atrapar el sistema de difusión BOOT_COMPLETED, mi programa simplemente no funciona?

Escribí un pequeño programa para capturar el sistema de difusión BOOT_COMPLETED , pero simplemente no funciona:

 package com.alex.app.testsysreboot; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("my_tag", "system reboot completed......."); } } 

Manifest.xml

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.alex.app.testsysreboot" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> </manifest> 

Cerré el AVD y luego hice clic en el botón "ejecutar" en Eclipse, y el Eclipse inició un nuevo AVD, pero después del arranque del sistema, simplemente no puedo ver el registro en el LogCat …

Bueno, he intentado esto y funciona para mí,

 public class Autostart extends BroadcastReceiver { public void onReceive(Context arg0, Intent arg1) { Log.i("Autostart", "**********started************"); } } 

Archivo de AndroidManifest

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pack.saltriver" android:versionCode="1" android:versionName="1.0" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name=".Autostart"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission> </manifest> 

Necesitas agregar

 android:enabled="true" android:exported="true" 

Y

Asegúrese de que la aplicación no está instalada en la tarjeta SD – las aplicaciones IIRC instaladas allí no reciben BOOT_COMPLETED .

Otro punto es que los dispositivos con "Fast Boot" habilitado (como varios dispositivos HTC) (a veces?) No envían BOOT_COMPLETED .

Desde Android 3.1+ hay más rarezas con respecto a BOOT_COMPLETED relacionadas con "el primer inicio de una aplicación" – ver http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

Un proyecto de muestra de trabajo con la fuente, consulte https://github.com/commonsguy/cw-advandroid/tree/master/SystemEvents/OnBoot

De http://arthurfmay.blogspot.com/2011/06/broadcastreceiver-bootcompleted-and.html

Así que en su lugar, desde Eclipse sólo entré en el Android SDK y AVD Manager (bajo el menú de la ventana) y comenzó el emulador de allí. Hice esto por supuesto después de cargar la aplicación en el emulador. Comienzo el emulador y mi BroadcastReceiver en el cargador trabaja muy bien. No había necesidad de ir a ejecutar el emulador en la línea de comandos.

Otra muestra de trabajo se puede encontrar aquí .

  • ¿Es posible escribir un receptor de difusión Android que detecte cuando el teléfono se despierta?
  • Broadcast reciever correr en el hilo principal?
  • ¿Cómo puedo interceptar pulsaciones de botón en el auricular en Android?
  • Android abortBroadcast no impide que los sms sean transmitidos
  • Android: Consulta del registro de llamadas después de que se haya actualizado una vez que termina una llamada
  • El receptor de la difusión para comprobar la conexión a internet se llama dos veces cuando desconecto el wifi
  • Receptor de difusión para detectar el inicio de la aplicación
  • El lanzamiento de una actividad de un receptor de emisión que escucha la llamada saliente
  • Receptor de radiodifusión en un fragmento
  • ¿Cómo identifica * qué * dispositivo bluetooth causa una emisión ACTION_ACL_CONNECTED?
  • android.hardware.action.NEW_PICTURE se dispara dos veces
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.