2013-09-28 110 views
0

我對收集應用程序小部件的概念完全陌生,更不用說應用程序小部件了。我想創建一個應用程序小部件,它可以收集用戶安裝的應用程序列表,並將它們放入應用程序小部件的列表視圖中,可以對其進行檢查。小部件會相應地更新列表。 我環顧四周,看看有沒有辦法做到這一點,我發現使用應用程序小部件與集合可能是一種可能性。 我正在以正確的方式來解決這個問題嗎?任何資源或提示,以幫助我這樣做是apperciated!收集使用應用程序窗口小部件和已收藏應用程序的應用程序列表?

回答

0

你有點問大家寫你的應用程序從你(這太籠統了一個問題)。也許你應該將問題分解成更易於管理的問題,並且自己做一些初步的研究以更好地定義問題。你可以在一個小部件中放置一個listview(你可以在Android的任何控件中放置幾乎任何UI元素 - 因爲所有東西都只是View的一個子類)。

以獲取列表的所有應用程序用戶安裝,使用PackageManager(應用程序的列表在列表中,這是一種集合捕獲):

 PackageManager packageManager = null; 
     List<ApplicationInfo> appsList = new ArrayList<ApplicationInfo>(); 
     try { 
      packageManager = getPackageManager(); 
      if (packageManager != null) { 
       appsList = packageManager.getInstalledApplications(0); 
      } 
     } catch (final Exception e1) { 
      Log.v("PackageManager", "This is my error: ", e1); 
     } 
+0

我同意,對此抱歉。我已經做了一些我自己的研究,並將從這裏發佈更具體的問題。我試圖問你在這裏回答的主要問題(如何獲得安裝的應用程序列表)感謝您的提示! – user1628978

+0

很高興爲您提供幫助,並善於學習更多知識,以便您可以專注於您的問題。祝你好運與Android。 – Booger

0

這個API將崩潰一些HTC設備等。我們通過以下方式來執行以下方式來查找具有至少一個Activity的應用程序。

 List<String> installedPackageNamesList = new ArrayList<String>(); 

     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.addCategory(Intent.CATEGORY_LAUNCHER); 

     List<ResolveInfo> resolveInfoList = context.getPackageManager().queryIntentActivities(intent, 0); 

     for(ResolveInfo info : resolveInfoList){ 
      if(info.activityInfo != null && info.activityInfo.packageName != null){ 
       installedPackageNamesList.add(info.activityInfo.packageName); 
      } 
     } 
相關問題