2011-08-12 4 views
0

getPackageManager()によって返されたListとともに使用される場合、indexOf()のオブジェクトパラメータは何ですか?getInstalledPackages(0)?私はpackageNameを比較するコンパレータを使ってCollections.sortをリスト上で行った。私は、packageNameである文字列に基づいてindexOfを取得したいが、そのパラメータがどのように形成されるかを理解することはできない。私はgetInstalledPackagesによって返されるarraylistのアンドロイドインデックス

PackageInfo searchInfo = new PackageInfo(); 
     searchInfo.packageName = procName; 
     int nameIndex = packs.indexOf(searchInfo); 

を試みた、それは-1を返し

答えて

0

あなたはこのcode.Hereを見て、あなたがのpackageNameと比較することができます.....

List<ApplicationInfo> packages; 
    PackageManager pm; 
    pm = getPackageManager(); 
      get a list of installed apps. 
      packages = pm.getInstalledApplications(0); 

ActivityManager mActivityManager = (ActivityManager) context 
       .getSystemService(Context.ACTIVITY_SERVICE); 

    for (ApplicationInfo packageInfo : packages) { 
    if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)==1)continue; 
    if(packageInfo.packageName.equals("mypackage")) continue; 



         } 
+0

私はすでに反復を使用していますが、それは長い時間がかかりますし、私はソートとindexOfが速くなることを望んでいました。 – ron

0

このラインチェック:int nameIndex = packs.indexOf(searchInfo);をと観察するsearchInfo

+0

申し訳ありませんが、私の質問は非常にはっきりしています。オブジェクトパラメータが正しく動作するためには、オブジェクトパラメータがどのように形成されるべきかを知る必要があります。 – ron

関連する問題