0

I am receiving the name and other details of the package that is recently added by implementing onReceive() of broadcastreceiver , but i have no idea how to get icon of that package. I am unable to get packageManager() in brodcast Receiver

Is that possible to get icon from intent ??

public class PackageActionsReceiver extends BroadcastReceiver {

private static final String TAG = PackageActionsReceiver.class
        .getSimpleName();

@Override
public void onReceive(Context context, Intent intent) {
    if (UtilSharedPreference.isRegistered(context)) {
        Log.d(TAG, "onReceiver");
        Uri data = intent.getData();
        Package packageBean = new Package();
        Drawable tempDrawableImage;
        packageBean.setPackageName(data.getEncodedSchemeSpecificPart());
        if (intent.getAction().equals(
                Intent.ACTION_PACKAGE_ADDED.toString())) {
            packageBean.setInfo("I");
        } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {
            packageBean.setInfo("U");
        } else if (intent.getAction()
                .equals(Intent.ACTION_PACKAGE_REPLACED)) {
            packageBean.setInfo("R");
        }
        packageBean.setName(Utils.getApplicationName(context, intent
                .getData().getEncodedSchemeSpecificPart(),
                PackageManager.GET_UNINSTALLED_PACKAGES));
        packageBean.setDate(System.currentTimeMillis());

        PackageDataSource packageSource = new PackageDataSource(context);
        packageSource.open();
        packageSource.addNewPackage(packageBean);
        packageSource.close();
    }
}

}

1 Answers1

1

You can get the packageManager from context that you have on the onReceive Method

e.g.

public void onReceive(Context context, Intent intent) {
context.getPackageManager()
}

and you can use this answer

Drawable icon = context.getPackageManager().getApplicationIcon("com.example.testnotification");
imageView.setImageDrawable(icon);

from this answer

Community
  • 1
  • 1
Sandy
  • 985
  • 5
  • 13
  • Thnx @sandy , it helped me.... i have applied logic this way, `DrawableImage = context.getPackageManager().getApplicationIcon(data.getEncodedSchemeSpecificPart());` as i need to get icon of application received by brodcast receiver. – Hardik Patel Dec 24 '15 at 08:36
  • 1
    @HardikPatel if you find my answer is helpful to your question please accept answer so others can get help from here thanks :) – Sandy Dec 24 '15 at 08:41