transmissão de ação intencional BOOT_COMPLETED não funciona corretamente

Eu tenho uma classe de receptor ouvindo várias ações, mas não pode pegar oandroid.intent.action.BOOT_COMPLETED açao. O que estou fazendo errado? aqui está o meu arquivo de manifesto:

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

como pode ser visto eu adicionei a permissão novamente dentro do receptor e o nome do receptor recebe o nome completo da classe como esteresponda sugere.
aqui está a classe do receptor de broadcast:

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

Quando eu executo o aplicativo, o receptor capturaandroid.intent.action.PACKAGE_REPLACED mas quando eu reiniciar o telefone, o receptor não pega oBOOT_COMPLETED.
No entanto, quando eu comentar no.OtherReceiver noMainfest arquivo pode pegá-lo!
aqui está o código desta 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");
    }

}   
}

exatamente o mesmo que o outro. Então, minha pergunta é por que eu preciso definir um receptor separado para oBOOT_COMPLETED açao?
Editar: Eu também tentei enviar a ação viaadb de acordo comisto, e sem qualquer permissão eu poderia pegá-lo com oAppReceiver classe:

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

questionAnswers(2)

yourAnswerToTheQuestion