Part of my applications duties are to enumerate "launcher" activities -- to 
do this, I call PackageManger.queryIntentActivities(). On some devices this 
has resulted in a *TransactionTooLargeException*. Is there a way around 
this? 

*Example code:*

> final PackageManager pm = getPackageManager();
> Intent intent = new Intent(Intent.ACTION_MAIN, null);
> intent.addCategory(Intent.CATEGORY_LAUNCHER);
> final List<ResolveInfo> ri = pm.queryIntentActivities(intent, 0); 
> // TransactionTooLargeException


I saw a related post about 
getInstalledPackages()<https://groups.google.com/forum/?fromgroups#!topic/android-developers/EK4eJPadabs>but
 it seemed to end with "Don't do that" which seems like an odd answer to 
"just using the API". I'd expect that in this case if the underlying 
implementation is limited to 1M that the query is done in batches and 
hidden from the developer or that an API exists to do it in batches myself.

Any ideas? This works nearly all of the time (expected!) but it seems that 
every now and then I'm running into this exception in the wild on customer 
devices.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to