Comment faire pour que mon application recevoir des émissions lorsque d'autres applications sont installées ou supprimées
Je veux faire une application qui permet de recevoir des émissions lorsque d'autres applications sur l'appareil sont installés ou supprimés.
mon code
dans manifset:
<receiver android:name=".apps.AppListener">
<intent-filter android:priority="100">
<action android:name="android.intent.action.PACKAGE_INSTALL"/>
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
</intent-filter>
</receiver>
dans 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");
}
}
mais je ne peut pas recevoir toute la diffusion. Je pense que ce problème est dû à l'application des autorisations, une idée?
Merci pour l'aide.
OriginalL'auteur bmavus | 2012-06-28
Vous devez vous connecter pour publier un commentaire.
Dans votre manifeste:
Ajouter la ligne avant de l'intent-filter tag
De sorte que votre manifeste devrait ressembler à ceci:
Ne suis pas sûr de la PACKAGE_REMOVED intention que, si sa ne l'est réellement disponible.
arg1.getDataString() retournera un "package:TheInstalledPackageName" tout comme "package:com.google.blague"
PACKAGE_INSTALL
est inutile, obsolète et n'ont jamais été utilisés par Google: developer.android.com/reference/android/content/...Il ne fonctionne pas pour moi. J'ai plusieurs actions dans mon filtre d'intention. Parmi lesquels, PACKAGE_FULLY_REMOVED correctement les déclencheurs de mon récepteur onCreate, cependant, PACKAGE_ADDED ne fonctionne tout simplement pas. Mon application est déjà en cours d'exécution, j'ai exporté="true" pour le récepteur et j'ai inclus <data android:scheme="package" /> selon votre suggestion. Suis-je manqué quelque chose?
OriginalL'auteur t0mm13b
Vous devez éliminer android.l'intention.d'action.PACKAGE_INSTALL car il est obsolète et n'est plus recommandé, car c'est juste pour le système. Tout le reste est parfait et je recommande qu'au lieu de 100, mettre 999, la documentation ne donne pas de nombre maximum ou minimum à utiliser, plus le nombre est élevé, plus la priorité est élevée sera votre récepteur pour cette intention. Désolé pour le traducteur. Je parle et écris en espagnol.
Informations
OriginalL'auteur Heberth
D'excellentes Réponses, juste une dernière petite chose:
Sur chaque Application mise à jour de la première ACTION_PACKAGE_REMOVED sera appelée, suivi par ACTION_PACKAGE_ADDED - si vous souhaitez ignorer ces événements, il suffit d'ajouter sur votre onReceive():
C'est à partir de la documentation:
OriginalL'auteur Gal Rom