BroadcastReceiver при установке новых приложений - PullRequest
3 голосов
/ 02 июня 2011

Я хочу получать уведомление при установке нового приложения.

IntentFilter newAppFilter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
newAppFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
newAppFilter.addAction(Intent.ACTION_PACKAGE_INSTALL);
newAppFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
getApplicationContext().registerReceiver(newAppReceiver, newAppFilter);


public static BroadcastReceiver newAppReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {     
            Log.e("Broadcast","Received");
       }
};

Но я не могу получить ни одного журнала.Кто-нибудь может мне помочь?

Ответы [ 2 ]

10 голосов
/ 02 июня 2011

Попробуйте добавить схему данных к вашему IntentFilter.

newAppFilter.addDataScheme("package");

Ссылка: IntentFilter.addDataScheme () Документация

Если схемы не включены, то Намерение будет соответствовать, только если оно включает нет данных.

2 голосов
/ 17 июня 2012

Если кто-то сталкивается с этим, в документации о намерениях теперь говорится:
ACTION_PACKAGE_INSTALL - эта константа устарела.Эта константа никогда не использовалась.

...