вызвать домашний экран по умолчанию из приложения - PullRequest
2 голосов
/ 15 декабря 2011

Мне нужно вызвать домашний экран по умолчанию, который идет с моим телефоном, из моего приложения, которое также является приложением домашнего экрана. Я попытался найти и найти это

    ArrayList<Intent> intentList = new ArrayList<Intent>();
    Intent intent=null;
    final PackageManager packageManager=getPackageManager();
    for(final ResolveInfo resolveInfo:packageManager.queryIntentActivities(new 
                  Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME), 
                                                        PackageManager.MATCH_DEFAULT_ONLY)) {
    intent=packageManager.getLaunchIntentForPackage(
                          resolveInfo.activityInfo.packageName);
    intentList.add(intent);
    }

этот код работает для всех остальных программ запуска, но не для модуля запуска по умолчанию. Я попытался использовать точки останова в коде и обнаружил, что при 0 индексе списка должно быть намерение запуска по умолчанию, но намерение не содержит значения. Нужно ли мне какое-то разрешение спасибо

Ответы [ 2 ]

7 голосов
/ 15 декабря 2011

Надеюсь, это подойдет.

 Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
1 голос
/ 16 декабря 2011

Вы можете просто получить имя и класс из ResolveInfo и сделать намерение вручную, как для sonyercisson, имя пакета - "com.sonyericsson.home", а класс - "com.sonyericsson.home.HomeActivity"

   Intent intent = new Intent();
   intent.setClassName("com.sonyericsson.home", "com.sonyericsson.home.HomeActivity");
   intent.addCategory(Intent.CATEGORY_LAUNCHER);
   startActivity(intent);

это работает

...