2011-12-15 2 views
2

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

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 индексе списка должно быть намерение запуска по умолчанию, но намерение не удерживает значение. Нужно ли какое-то разрешение спасибо

ответ

1

вы можете просто просто получить имя и класс от 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); 

работает

6

Надеюсь, что это будет делать.

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

, который работает для домашнего экрана, установленного по умолчанию, но я хочу, чтобы открыть домашний экран, который поставляется с моим мобильным, даже если его не установлен по умолчанию –

Смежные вопросы