I have a receiver class listening on several actions but it can not catch the `android.intent.action.BOOT_COMPLETED` action. What I am doing wrong? here is my manifest file:

```
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <!--<receiver android:name=".OtherReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
    </receiver>-->
    <receiver android:name="com.myApp.AppReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
             <action android:name="android.intent.action.PACKAGE_ADDED"/>
             <action android:name="com.myApp.wifitimer"/>
            <action android:name="android.intent.action.PACKAGE_REPLACED" />
            <data android:scheme="package" android:path="com.myApp" />
    </intent-filter>
    </receiver>

```

as it can be seen I added the permission again inside the receiver and the name of the receiver gets the full name of the class as this [answer](https://stackoverflow.com/a/10080852/1342413) suggests.  

here is the broadcast receiver class:

```
@Override
public void onReceive(Context arg0, Intent arg1) {

    String action1 = arg1.getAction();

    if(action1.equals(Intent.ACTION_BOOT_COMPLETED)) {
        Log.d("receiver","action is: boot");
    }
    if(action1.equals("android.intent.action.PACKAGE_REPLACED")) {
        Log.d("receiver","action is: package");
    }
}

```

When I run the app the receiver catches the `android.intent.action.PACKAGE_REPLACED` but when I restart the phone the receiver does not catch the `BOOT_COMPLETED`.  

However when I comment in the `.OtherReceiver` in the *Mainfest* file it can catch it!  

here is the code of this class:

```
public class OtherReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context arg0, Intent arg1) {

    String action = arg1.getAction();

    if(action.equals(Intent.ACTION_BOOT_COMPLETED)) {
        Log.d("new receiver","action is: boot");
    }

}   
}

```

just the same as the other one. So my question is why I need define a separate receiver for the `BOOT_COMPLETED` action?  

**Edit:** I also tried to send the action via **adb** according to [this](https://stackoverflow.com/a/9886091/1342413), and without any permission I could catch it with the *AppReceiver* class:

```
am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n com.blubuk/.AppReciever

```