La aplicación para Android debe reiniciarse automáticamente después de encender el teléfono

Necesito que mi aplicación se inicie automáticamente una vez después del reinicio del teléfono y del encendido.

Utilicé el código proporcionado en AutoStart una aplicación al arrancar y ahora mi aplicación android se inicia automáticamente después del reinicio del teléfono (reinicio).

Ahora, considere que en vez de hacer un reinicio del teléfono, he usado la opción de apagado del teléfono (cierre el teléfono) . Después de encender el teléfono, mi aplicación no se inicia automáticamente como se esperaba. ¿Puede explicar lo que he perdido.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:enabled="true" android:name=".BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> public class BootUpReceiver extends BroadcastReceiver { private static SharedPreferences aSharedSettings; @Override public void onReceive(Context context, Intent intent) { aSharedSettings = context.getSharedPreferences("MYPreferences", Context.MODE_PRIVATE); boolean isUserLoggedIn = aSharedSettings.getBoolean(kEY.AUTHENTICATED, false); if(isUserLoggedIn) { Intent aServiceIntent = new Intent(context, HomeView.class); aServiceIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(aServiceIntent); } } } 

Gracias.

¿Funciona como se pretende si inicia la aplicación manualmente al menos una vez antes de reiniciar el teléfono, y no 'Fuerza de cierre'?

Mira esto:

Android: android.intent.action.BOOT_COMPLETED en ICS y Gingerbread

Boot Completed Regression Confirmado

Hay algunas cosas que puedes probar.

En primer lugar, comprueba que tu app installLocation en AndroidManifest.xml esté configurado en android:installLocation="internalOnly" esto asegura que la aplicación esté en el almacenamiento local. Las aplicaciones instaladas en la tarjeta BOOT_COMPLETE no recibirán la intención BOOT_COMPLETE .

También quitaría <category android:name="android.intent.category.DEFAULT" /> no es necesario.

Y lo último que puedes probar es usar un nombre de paquete completo:

  <receiver android:enabled="true" android:name="com.myapp.receivers.BootUpReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> 

Trate de agregar

 <category android:name="android.intent.category.LAUNCHER" /> 

en lugar de

 <category android:name="android.intent.category.DEFAULT" />. 

Y también compruebe el valor de isUserLoggedIn.

¿Está utilizando un dispositivo HTC? Si es así, es posible que tenga activada una función denominada "Fast-Boot"

Vea este enlace para más detalles.

Detectar si HTC "Fast boot" está habilitado

el nombre de la Actividad desde donde se inicia su aplicación, Añadir esta línea en su etiqueta ….. Y me dejó saber que funcionó o no

  <category android:name="android.intent.category.HomeView" /> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.