Search code examples
androidbroadcastreceiver

Android: Not able to receive PACKAGE_REMOVED broadcast


I have my receiver code

    BroadcastReceiver pkgRemoveReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // do my stuff
        }
    };
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    registerReceiver(pkgRemoveReceiver, filter);

So, whenever an app is removed from the device I get to do some book keeping. However, I am not able to receive the broadcast. Does the above code has any problem?

Thx! Rahul.


Solution

  • try as:

       IntentFilter filter = new IntentFilter();
       filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
       filter.addDataScheme("package"); // add addDataScheme
       registerReceiver(pkgRemoveReceiver, filter);
    
       BroadcastReceiver pkgRemoveReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            // do my stuff
            if (Intent.ACTION_PACKAGE_REMOVED.equals(action)) {
                 Toast.makeText(context, "ACTION_PACKAGE_REMOVED", Toast.LENGTH_LONG).show();
               }
        }
    };