Nach allem, was ich in Stack Exchange und anderswo gesehen habe, habe ich alles richtig eingerichtet, um einen IntentService beim Starten des Android-Betriebssystems zu starten. Leider startet es nicht beim Booten und ich erhalte keine Fehler. Vielleicht können die Experten helfen ...
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.phx.batterylogger"
android:versionCode="1"
android:versionName="1.0"
android:installLocation="internalOnly">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<service android:name=".BatteryLogger"/>
<receiver android:name=".StartupIntentReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
</manifest>
BroadcastReceiver für den Start:
package com.phx.batterylogger;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class StartupIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, BatteryLogger.class);
context.startService(serviceIntent);
}
}
UPDATE : Ich habe fast alle der folgenden Vorschläge ausprobiert und die Protokollierung hinzugefügt, z. B. Log.v("BatteryLogger", "Got to onReceive, about to start service");
zum onReceive-Handler des StartupIntentReceiver, und es wird nie etwas protokolliert. Es schafft es also nicht einmal zum BroadcastReceiver.
Ich denke, ich stelle das APK bereit und teste es korrekt. Ich führe nur Debug in Eclipse aus und die Konsole meldet, dass es erfolgreich auf meinem Xoom-Tablet unter \ BatteryLogger \ bin \ BatteryLogger.apk installiert wurde. Zum Testen starte ich das Tablet neu und schaue mir dann die Protokolle in DDMS an und überprüfe die laufenden Dienste in den Betriebssystemeinstellungen. Klingt das alles richtig oder fehlt mir etwas? Auch hier wird jede Hilfe sehr geschätzt.
Log.v("BatteryLogger", "Got to onReceive, about to start service");
habe den onReceive-Handler hinzugefügt und er wird nie in den Protokollen angezeigt. Also der Hörer versagt (?)