インストールされているアプリの一覧を取得するなど
しかだよ。
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に状態がビットでいっぱい詰まってるので、これを取り出すのがミソですね。