de radiodiffusion de BOOT_COMPLETED intention d'action ne fonctionne pas correctement

J'ai une classe de récepteur à l'écoute sur plusieurs actions, mais il ne peut pas attraper le android.intent.action.BOOT_COMPLETED action. Ce que je fais de mal? voici mon fichier de manifeste:

<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>

comme on peut le voir, j'ai ajouté la permission de nouveau à l'intérieur du récepteur et le nom du destinataire obtient le nom complet de la classe comme cette réponse suggère.
ici, c'est le récepteur de radiodiffusion de classe:

@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");
    }
}

Quand je lance l'application sur le récepteur capte le android.intent.action.PACKAGE_REPLACED mais lorsque je redémarre le téléphone, le récepteur ne pas attraper la BOOT_COMPLETED.
Cependant, quand j'ai fait un commentaire dans le .OtherReceiver dans le Mainfest fichier, il peut l'attraper!
voici le code de cette classe:

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");
    }

}   
}

tout de même l'un que l'autre. Donc ma question est pourquoi j'ai besoin de définir un récepteur séparé pour les BOOT_COMPLETED action?
Edit: j'ai aussi essayé d'envoyer de l'action via bad selon cette, et sans aucune autorisation, je pouvais l'attraper avec le AppReceiver classe:

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

OriginalL'auteur HiB | 2013-03-30