インストールされているアプリの一覧を取得するなど

インストールされているアプリの一覧を取得するなど

Table of Contents

f:id:re_shikajiro:20110729033529p:image

しかだよ。

AppCircleという、Androidのアプリを楽しむ探すアプリを作ってます。

そのなかの仕組みで、端末にダウンロードしてインストールしたアプリの一覧を取得したくなりました。

@t_eggさんの助言をもらい、以下な実装になりました。

......
        //パッケージマネージャを利用して、アプリケーションの一覧を取得する。
        //IntentにCATEGORY_LAUNCHERを指定しているので、厳密にはランチャーに表示されるアプリの一覧です。
              PackageManager pm = getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ApplicationInfo> apps = pm.getInstalledApplications(0);
Log.i(TAG, "ApplicationInfo count:"+apps.size());

/* * アプリケーションの一覧の中身に応じて色々処理する。 */ for(ApplicationInfo info : apps){ //アプリケーションにSYSTEMフラグが立っていたら(0000 0001)それはプリインストールされたアプリである。 if((info.flags & ApplicationInfo.FLAG_SYSTEM) == ApplicationInfo.FLAG_SYSTEM) continue;

ApplicationInfo.flagsに状態がビットでいっぱい詰まってるので、これを取り出すのがミソですね。