2011-12-15 136 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名稱和類,並意圖manualy像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

,對於主屏幕設置爲默認的工作,但我想打開自帶的我的手機,即使它不是設置爲默認主屏幕 – 2011-12-15 06:50:15

相關問題