Como usar o Broadcast Receiver em diferentes aplicativos no Android?

Eu tenho aqui duas aplicações em dois projetos diferentes no eclipse. Um aplicativo (A) define uma atividade (A1) iniciada primeiro. Então, inicio dessa atividade a segunda atividade (B1) no segundo projeto (B). Isso funciona bem.

Começo da seguinte maneira:

Intent intent = new Intent("pacman.intent.action.Launch");
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

Agora, quero enviar intenções entre as duas atividades usando receptores de transmissão. Na atividade A1, envio as intenções da seguinte maneira:

Intent intent = new Intent("pacman.intent.action.BROADCAST");
intent.putExtra("message","Wake up.");
sendBroadcast(intent);

A parte do arquivo de manifesto na atividade A1 responsável por esta transmissão é a seguinte:

<activity android:name="ch.ifi.csg.games4blue.games.pacman.controller.PacmanGame" android:label="@string/app_name">
    <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
       <action android:name="android.intent.action.BROADCAST" />
    </intent-filter>
</activity>

Na atividade de recebimento, defino o destinatário da seguinte maneira no arquivo de manifesto:

<application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".PacmanGame"
                  android:label="@string/app_name"
                  android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="pacman.intent.action.Launch" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <receiver android:name="ch.ifi.csg.games4blue.games.pacman.controller.MsgListener" />
        </activity>

    </application>

O ouvinte de mensagem da classe é implementado desta maneira:

public class MsgListener extends BroadcastReceiver {

    /* (non-Javadoc)
     * @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        System.out.println("Message at Pacman received!");
    }

}

Infelizmente, a mensagem nunca é recebida. Embora o método na atividade A1 seja chamado, nunca recebo uma intenção em B1.

Alguma dica de como resolver isso? Muito obrigado!

questionAnswers(4)

yourAnswerToTheQuestion