studio programacion particiones para libro gestionar edición desarrollo desarrollar aprende aplicaciones android broadcastreceiver sd-card boot

programacion - Android: cómo iniciar una aplicación en la/sdcard después del arranque



manual de programacion android pdf (4)

Por favor mencionalo en el archivo de manifiesto.

</uses-permission> <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true" android:label="BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> </intent-filter> </receiver>

proporcione permiso "android.permission.RECEIVE_BOOT_COMPLETED" como hijo de manifiesto.

y una cosa más, su aplicación no debe instalarse en sdcard.

¿Hay alguna manera de iniciar y aplicar una aplicación de Android después de un arranque automáticamente si está en la /sdcard ?

Ok, probablemente por BroadcastReceiver . ¿Pero qué acción es la correcta?

ACTION_BOOT_COMPLETED - does not work if it is on the /sdcard (documented) ACTION_MEDIA_MOUNTED - does not work if it is on the /sdcard (which is undocumented) ACTION_EXTERNAL_APPLICATIONS_AVAILABLE - does not work, I do not know why ACTION_USER_PRESENT - does not work if the BroadcastReceiver is registered in AndroidManifest (which is undocumented, but documentation bug has been reported)

Gracias
ene


Por lo general, registro todos los filtros de intento para un receptor de difusión en ambos sentidos (Android Manifest y dinámicamente en una clase que extiende la aplicación)

En AndroidManifest.xml como:

<receiver android:name=".broadcastReciever" android:enabled="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE" /> </intent-filter> </receiver>

y en una clase que extiende la aplicación:

registerReceiver(new broadcastReciever(), new IntentFilter(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE));

y no olvide agregar el permiso RECEIVE_BOOT_COMPLETED y registrar la clase que extiende la aplicación en el manifiesto de Android.

Esto debería hacer; no dude en pedir más ayuda / aclaración.


Según Google, no debe poner ninguna aplicación que desee ejecutar durante el arranque en una unidad externa.

"El sistema entrega la transmisión ACTION_BOOT_COMPLETED antes de que el almacenamiento externo se monte en el dispositivo. Si su aplicación está instalada en el almacenamiento externo, nunca podrá recibir esta transmisión".

http://developer.android.com/guide/topics/data/install-location.html#ShouldNot


intente usar <receiver android:name=".BootCompleteReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.intent.action.QUICKBOOT_POWERON" /> </intent-filter> </receiver>

y esto <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

quizás QUICKBOOT_POWERON te ayude