Does every device send the BOOT_COMPLETED? I want to start an Activity on Boot Completed.
I put the following in the Manifest:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".BootFinished">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Created the following class (receiver):
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.widget.Toast;
public class BootFinished extends BroadcastReceiver {
@Override
public void onReceive(Context mContext, Intent intent) {
if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
//do something like start an activity or service
}
try {
PackageManager pm = mContext.getPackageManager();
Intent launch = pm.getLaunchIntentForPackage("com.example.afterboot");
mContext.startActivity(launch);
} catch (Exception e) {
Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_SHORT);
}
}
}
Am I missing something? Thanks!
As a starting point, try putting the full path of your receiver in the manifest.
Add full path and secondly add permission in your receiver.
The possible reasons why broadcast reciever events could fail:
Receiver not declared in AndroidManifest.xml Declare the receiver in the Manifest-file:
Receiver in the Manifest xml is misspelled Android-System is case sensitive. So check your spelling and path is correct in the AndroidMainfest.xml
AVD running for a long time Reset your avd/device
4.Also if your app is in moved to sdcard.Say you have registered for android.intent.action.BOOT_COMPLETED,the boot event is triggered even before the mediascanner scans the sdcard.
and all the devices which run android sends BOOT_COMPLETE :P Check again and try :) all the best :)