स्टैक एक्सचेंज और अन्य जगहों पर मैंने जो कुछ भी देखा है, उसमें एंड्रॉइड ओएस बूट होने पर एक इंटेंटसेवा शुरू करने के लिए मेरे पास सब कुछ सही है। दुर्भाग्य से यह बूट पर शुरू नहीं हो रहा है, और मुझे कोई त्रुटि नहीं मिल रही है। शायद विशेषज्ञों की मदद कर सकते हैं ...
मैनिफ़ेस्ट:
<?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>
स्टार्टअप के लिए ब्रॉडकास्टरीवर:
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);
}
}
अद्यतन करें : मैंने नीचे दिए गए सभी सुझावों के बारे में कोशिश की, और मैंने लॉगिंग को जोड़ा जैसे Log.v("BatteryLogger", "Got to onReceive, about to start service");
कि StartIIntentReceiver के ऑनरिविव हैंडलर, और कुछ भी कभी लॉग नहीं किया गया है। तो यह ब्रॉडकास्टसीवर को भी नहीं बना रहा है।
मुझे लगता है कि मैं एपीके और टेस्ट को सही ढंग से तैनात कर रहा हूं, बस डिबग इन एक्लिप्स चला रहा हूं और कंसोल कहता है कि यह सफलतापूर्वक इसे मेरे एक्सओम टैबलेट में \ BatteryLogger \ bin \ BatteryLogger.apk पर स्थापित करता है। फिर परीक्षण करने के लिए, मैं टैबलेट को रिबूट करता हूं और फिर डीडीएमएस में लॉग को देखता हूं और ओएस सेटिंग्स में रनिंग सर्विसेज की जांच करता हूं। क्या यह सब सही है, या मुझे कुछ याद आ रहा है? फिर, किसी भी मदद की बहुत सराहना की है।
Log.v("BatteryLogger", "Got to onReceive, about to start service");
onReceive हैंडलर में जोड़ा , और यह लॉग में कभी नहीं दिखा। तो श्रोता असफल हो रहा है (?)