How in the world does Nova manage this? I\'m literally trying to do exactly the same thing: provide users with a button to press to clear and pick their new default launcher
r2DoesInc's solution doesn't work on my 4.2.2 test device.
My solution: Disable then re-enable my app's HomeActivity, it doesn't have to create FakeHome
PackageManager p = getPackageManager();
ComponentName cN = new ComponentName(this, HomeActivity.class);
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME));
p.setComponentEnabledSetting(cN, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);