Receber eventos de instalação e desinstalação de pacotes

Estou tentando detectar quando um novo aplicativo está sendo instalado, mas apenas se meu aplicativo estiver em execução. Consegui detectar a instalação do aplicativo criando um BroadcastReceiver e ativando-o dentro do arquivo AndroidManifest, mas isso detectará mesmo se meu aplicativo estiver fechado. É por isso que preciso ativar e desativar manualmente o Broadcastreveiver. Para fazer isso, tenho este código:

br = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.i("Enter", "Enters here");
        Toast.makeText(context, "App Installed!!!!.", Toast.LENGTH_LONG).show();
    }
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL);
registerReceiver(br, intentFilter);

Isso deve fazer um brinde quando um novo aplicativo é instalado. Mas, infelizmente, isso não acontece. Ele não entra no método onReceive. Qualquer ajuda é apreciad

questionAnswers(3)

yourAnswerToTheQuestion