Прежде всего, я знаю, что сотни таких вопросов задавались, но я все время их проверял и до сих пор не нашел решения.
Я видел этот ответ, сказал, что BOOT_COMPLETED не отправляется в приложение, если пользователь не запускает ваше приложение первым, после Android версии 3.1 Но я все еще вижу, что некоторые приложения делают это, должен быть способ. Мне действительно нужно справиться с этим, иначе я тоже не буду делать что-то без взаимодействия с пользователем.
Итак, вот мой 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>
Спасибо заранее.
Изменить: В моем трансляторе нет ничего особенного, но для этого требуется следующее:
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
}
}
}