Cómo hacer que mi aplicación reciba difusión cuando otras aplicaciones se instalan o eliminan

Quiero hacer una aplicación que pueda recibir difusión cuando se instalan o eliminan otras aplicaciones en el dispositivo.

mi código

en manifset:

       

en AppListener:

 import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class AppListener extends BroadcastReceiver { @Override public void onReceive(Context context, Intent arg1) { // TODO Auto-generated method stub Log.v(TAG, "there is a broadcast"); } } 

pero no puedo recibir ninguna transmisión. Creo que este problema se debe a los permisos de la aplicación, ¿alguna idea?

Gracias por ayudar.

    En tu manifiesto:

            

    Agregue la línea antes de la etiqueta de filtro de intención

      

    Entonces su manifiesto debería verse así:

             

    No estoy seguro sobre el bash PACKAGE_REMOVED de que si está realmente disponible.

    Debe eliminar android.intent.action.PACKAGE_INSTALL ya que está en desuso y ya no se recomienda, porque es solo para el sistema. Todo lo demás es perfecto y recomendaría que en lugar de 100, ponga 999, la documentación no dé el número máximo o mínimo para usar, cuanto mayor sea el número, mayor será la prioridad que tendrá su receptor para esa intención. Perdón por el traductor Yo hablo y escribo en español Información

           

    Grandes respuestas, solo queda una pequeña cosa:

    En cada actualización de la aplicación, primero se llamará ACTION_PACKAGE_REMOVED seguido de ACTION_PACKAGE_ADDED. Si desea ignorar estos eventos, simplemente agréguelo a su onReceive ():

     if(!(intent.getExtras() != null && intent.getExtras().containsKey(Intent.EXTRA_REPLACING) && intent.getExtras().getBoolean(Intent.EXTRA_REPLACING, false))) { //DO YOUR THING } 

    Esto es de los documentos:

    EXTRA_REPLACING Agregado en API nivel 3 Cadena EXTRA_REPLACING Utilizado como campo booleano extra en ACTION_PACKAGE_REMOVED intenta indicar que se trata de un reemplazo del paquete, por lo que esta transmisión será seguida inmediatamente por una emisión agregada para una versión diferente del mismo paquete. Valor constante: “android.intent.extra.REPLACING”