Cómo filtrar correctamente Paquete reemplazado broadcast

Estoy tratando de capturar el paquete reemplazado de difusión para mi aplicación y sólo mi aplicación, pero por alguna razón en mi reciever soy la transmisión de cada aplicación que se actualiza. Pensé que sólo necesitaba establecer el filtro de intenciones en el archivo de manifiesto para su aplicación, pero tal vez estoy equivocado?

Aquí está mi código (manifiesto):

<receiver android:name=".UpdateReciever"> <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" android:path="com.my.app" /> </intent-filter> </receiver> 

Receptor:

 public class AppUpdateReciever extends BroadcastReceiver { @Override public void onReceive(Context con, Intent intent) { //code.. } } 

Añada esto al método onReceive:

 if (intent.getDataString().contains("com.my.app")){ ... } 

EDITAR: Tenga en cuenta que al registrarse para ACTION_PACKAGE_REPLACED , la aplicación se iniciará cada vez que se actualice una aplicación, si aún no estaba abierta. No sé cómo evitar esto antes de la API 12, pero en API 12 puede registrarse para ACTION_MY_PACKAGE_REPLACED para que no tenga que filtrar la intención y su aplicación no se iniciará innecesariamente por otras aplicaciones que se están actualizando.

Alternativamente, si su código está en una biblioteca que está incluida en varias aplicaciones, o si sólo desea algo que se puede copiar / pegar entre aplicaciones sin ediciones:

 int intentUid = intent.getExtras().getInt("android.intent.extra.UID"); int myUid = android.os.Process.myUid(); if (intentUid == myUid) { ... } 
  • Android - Registrar un receptor de difusión para dos intentos?
  • ¿Cómo puedo iniciar la actividad PRINCIPAL con la ayuda de <intento-filtro>?
  • CONNECTIVITY_CHANGE obsoleta en el objetivo de Android N
  • Cómo corregir Advertencia de pelusa de SMS BroadcastReceiver sin protección
  • ¿Por qué Filtros de Intención de Etiqueta?
  • Android PhoneGap intento de filtro, el navegador de volver a ejecutar la aplicación?
  • Android: ¿Puedo activar / desactivar el filtro de intención de una actividad mediante programación?
  • Diseño de la aplicación para Android: escribe el filtro de intenciones correcto
  • ¿Cuántas etiquetas de esquema y host pueden estar bajo el intento de filtro en android manifiesto?
  • Abrir aplicación de URL funciona en Firefox para Android pero no en Google Chrome
  • BroadcastReceiver - onReceive Not Being Called
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.