英語が不自由だったのでリファレンスで目的の場所にたどり着くのにすごく時間がかかっただけなんですけどメモです。
ネットで調べても探し方が悪いのかあまりに一般的なのかなかなか出てこなかったので。
PackageManagerクラスを使ってパッケージの一覧を取得するのですが、メーカーがあらかじめインストールしているアプリも含めて全部を取得できてしまうのでApplicationInfo#flagsを使って絞込みします。
サンプル
PackageManager pm = getPackageManager(); if(pm == null){ Log.d("test", "none package manager"); }else{ Listpackage_list = pm.getInstalledPackages( PackageManager.GET_UNINSTALLED_PACKAGES ); for (PackageInfo info : package_list){ if(info.applicationInfo != null){ if((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) > 0){ //システムイメージにインストールされてるパッケージ }else{ //パッケージ名を出力 Log.d("test", info.packageName); } } } }
コメント