D'après tout ce que j'ai vu sur Stack Exchange et ailleurs, j'ai tout configuré correctement pour démarrer un IntentService au démarrage du système d'exploitation Android. Malheureusement, il ne démarre pas au démarrage et je n'obtiens aucune erreur. Peut-être que les experts peuvent vous aider ...
Manifeste:
<?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 pour le démarrage:
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);
}
}
MISE À JOUR : J'ai essayé à peu près toutes les suggestions ci-dessous, et j'ai ajouté une journalisation telle que Log.v("BatteryLogger", "Got to onReceive, about to start service");
le gestionnaire onReceive de StartupIntentReceiver, et rien n'est jamais enregistré. Il ne parvient même pas au BroadcastReceiver.
Je pense que je déploie l'APK et que je teste correctement, j'exécute simplement Debug dans Eclipse et la console dit qu'elle l'installe avec succès sur ma tablette Xoom à \ BatteryLogger \ bin \ BatteryLogger.apk. Ensuite, pour tester, je redémarre la tablette, puis regarde les journaux dans DDMS et vérifie les services en cours d'exécution dans les paramètres du système d'exploitation. Est-ce que tout cela semble correct ou est-ce que je manque quelque chose? Encore une fois, toute aide est très appréciée.
Log.v("BatteryLogger", "Got to onReceive, about to start service");
au gestionnaire onReceive, et il n'apparaît jamais dans les journaux. Donc l'auditeur échoue (?)