Я пытался запустить сервис, когда устройство загружается на андроиде, но я не могу заставить это работать. Я посмотрел на многие ссылки онлайн, но ни одну из работ кода. Я забываю что-то?
<receiver
android:name=".StartServiceAtBootReceiver"
android:enabled="true"
android:exported="false"
android:label="StartServiceAtBootReceiver" >
<intent-filter>
<action android:name="android.intent.action._BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name="com.test.RunService"
android:enabled="true" />
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceLauncher = new Intent(context, RunService.class);
context.startService(serviceLauncher);
Log.v("TEST", "Service loaded at start");
}
}
У меня есть дополнительный
-tag, не знаю, имеет ли это какое-либо значение.
<receiver android:name="BootIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
Пробовали ли вы опустить условие if "android.intent.action.BOOT_COMPLETED".equals(intent.getAction()
, поскольку приемник, вероятно, все равно получает только это намерение?
Думаю, в ваш манифест нужно добавить:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />