Android – Как запустить приложение на / sdcard после загрузки

Есть ли способ запуска и приложения Android после загрузки автоматически, если он находится на /sdcard ?

Хорошо, возможно, BroadcastReceiver . Но какое действие является правильным?

 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) 

благодаря
январь

Пожалуйста, укажите это в файле манифеста.

 </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> 

Предоставить разрешение «android.permission.RECEIVE_BOOT_COMPLETED» в качестве ребенка манифеста.

И еще одно, что ваше приложение не должно быть установлено на SD-карте.

Согласно Google, вы не должны помещать любое приложение, которое вы хотите запускать при загрузке на внешний диск.

«Система доставляет трансляцию ACTION_BOOT_COMPLETED до того, как внешнее хранилище будет установлено на устройство. Если ваше приложение установлено во внешнем хранилище, оно никогда не сможет получить эту трансляцию».

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

Я обычно регистрирую каждый фильтр намерений для широковещательного приемника в обоих направлениях (Android Manifest, а также динамически в классе, расширяющем приложение)

В AndroidManifest.xml:

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

И в классе, который расширяет Application:

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

И не забудьте добавить разрешение RECEIVE_BOOT_COMPLETED и зарегистрировать класс, который расширяет приложение в манифесте Android.

Это должно быть сделано; Не стесняйтесь обращаться за дополнительной помощью / разъяснениями.

Попробуйте использовать <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>

И этот <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

Возможно, QUICKBOOT_POWERON поможет u