Как запустить Домашний экран программно в Android

Я хочу запустить домашний экран Android с моим приложением. Основная цель – показать все приложения пользователю, когда он нажимает специализированный ключ. На самом деле, это не важно. Любая идея сделать это?

Solutions Collecting From Web of "Как запустить Домашний экран программно в Android"

Вот код для запуска HomeActivity

Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); 

Комментарии, сделанные вами по некоторым ответам, предполагают, что вы действительно хотите запустить Launcher (вы можете обновить заголовок, если это так). Для этого используйте тот же подход, предложенный Анандом для запуска домашней деятельности.

 Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_LAUNCHER); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); 

В Android нет «экрана, который показывает приложения со значками для пользователей».

То, о чем вы думаете, является особенностью некоторых домашних экранов. Не существует стандартизированного Intent чтобы вызвать это, и для домашних экранов нет необходимости иметь такую ​​функцию.

Вы можете написать свой собственный. Вот пример проекта, который отображает запускаемые действия в ListView .

Попробуйте что-то вроде этого, чтобы нажать кнопку «Назад», чтобы перейти к главному экрану / …

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { // Display confirmation here, finish() activity. Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain); return true; } return super.onKeyDown(keyCode, event); } 

Я не уверен, полностью ли понимаю, что вы пытаетесь сделать! Но если вы имеете в виду, что хотите, чтобы пользователь мог использовать другое приложение, щелкнув внутри вашего приложения, вы должны проверить «намерение». Запустите образец кода API DEMO в eclipse и запустите App -> Intents

Я думаю, что я очень опаздываю на вечеринку, но у меня была такая же проблема. В приведенных ниже ответах запускается меню выбора, которое позволяет вам выбрать Launcher. Если у вас в вашем коде более одной пусковой установки, ответ здесь: https://stackoverflow.com/a/8666155 может помочь. Это сразу запускает основной экран Android по умолчанию .

Ни одно из решений здесь не работает для меня.

Я получил его, используя приведенный ниже код

 PackageManager pm = getPackageManager(); Intent i = new Intent("android.intent.action.MAIN"); i.addCategory("android.intent.category.HOME"); List<ResolveInfo> lst = pm.queryIntentActivities(i, 0); if (lst != null) { for (ResolveInfo resolveInfo : lst) { try { Intent home = new Intent("android.intent.action.MAIN"); home.addCategory("android.intent.category.HOME"); home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); startActivity(home); break; } catch (Throwable t) { t.printStackTrace(); } } } 

Получил его: https://stackoverflow.com/a/16483596/1241783

Надеюсь, это поможет кому-то

Я достиг этого, используя одну строку

 moveTaskToBack(true); //activity.moveTaskToBack(true); 

Он ведет себя как кнопка «Главная»

Это работает хорошо для меня!

 Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startActivity(startMain); 

Может кто-нибудь объяснить, зачем нам это нужно?

 startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

Кстати, это то, что я искал

 moveTaskToBack(true);