Tutorial :How would I go about getting the package names of the applications that can be Home on android



Question:

My activity gets set as the default Home by the user, but I want to be able to launch the default Home from within my activity as well. I've tried hard coding the following:

Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); PackageManager pm = getPackageManager(); String packageName = "com.android.launcher"; String className = "com.android.launcher.Launcher"; final ComponentName cn = new ComponentName(packageName, >className); intent.setComponent(cn);

This seems to work on my droid, but force closes on the HTC Ally. I'm thinking there's an easier way to just get a list of the apps that have the category Home and Default.

For those that have used the Home Swittcher app. I essentially want to generate that list of installed default Home activities on the phone.


Solution:1

Step #1: Create an Intent that launches whatever the user has for the default HOME application. In other words, do not try putting in the ComponentName.

Step #2: Call queryIntentActivities() on PackageManager to find out who all can respond to that Intent.

Step #3: If there are only two entries in the list, find out which is yours, and the other one is the platform's. If there are 3+ entries in the list, remove yours and let the user choose among the remaining options.

You could sorta combine #2 and #3 by using queryIntentActivityOptions() if you like, setting it up to filter your own Intent out of the list.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »