2013-01-17 38 views
2

我想開發一個Android應用程序,我有以下要求。有沒有辦法通過代碼,我可以在調試模式下獲取設備上安裝的應用程序列表。Android - 在調試模式下獲取應用程序列表

在此先感謝。

編輯 - 我試了下面的代碼。

PackageManager pm = getPackageManager(); 
     List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA); 

     for (int i=0; i < packages.size(); i++) 
      { 
       if ((packages.get(i).flags & ApplicationInfo.FLAG_SYSTEM) == 1) 
       { 
        //This is for System applications 
       } 
       else 
       { 

        boolean isDebuggable = (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE)); 

        if((pm.getLaunchIntentForPackage(packages.get(i).packageName)!=null) && (isDebuggable = true))     
        { 
         // Only For Apps with debug mode set true, this line should get executed 
         // But this does not happens 
        } 
       } 
      } 
+0

請定義「在調試模式下」。 – CommonsWare

+0

在android manifest xml中,如果android debuggable屬性設置爲true,那麼該應用程序將設置爲android調試模式。 – Prem

回答

1

我嘗試了各種方法,但根據我的理解,我們無法單獨獲取調試模式下的應用程序列表。

通過使用標誌,我們只能得到具有此代碼的應用程序,而不是其他應用程序在設備上運行。

謝謝反正。如果有人有不同的想法,請讓我知道。

2

在這裏你去,

Intent main = new Intent(Intent.ACTION_MAIN, null); 
main.addCategory(Intent.CATEGORY_LAUNCHER); 
List pkgAppsList = context.getPackageManager().queryIntentActivities(main, 0); 

這應該給你,以揭開序幕的應用程序的足夠信息。

+0

謝謝,但這並沒有工作...列表包含所有的應用程序,不僅在調試模式下部署的應用程序 – Prem

+0

我的歉意,我想你的意思是你想要一個應用程序在調試模式本身的應用程序列表 - 不僅「調試模式應用程序」。 –

+0

你可以使用從activityInfo的taskAffinity串拿到包的名稱,然後你可以傳遞給getPackageManager()。getApplicationInfo(),以檢查FLAG_DEBUGGABLE –

相關問題