【Android開発】インストール済みアプリの一覧を取得して表示する方法
この記事では、Android端末にインストールされているアプリケーションの一覧を取得し、ListViewで画面に表示する方法を解説します。PackageManagerクラスを利用すれば、端末内のパッケージ情報に簡単にアクセスできるようになります。
手順1:新規プロジェクトを作成する
Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目を入力して、新しいプロジェクトを作成してください。
手順2:レイアウトファイル(activity_main.xml)を編集する
res/layout/activity_main.xml に以下のコードを追加します。取得したアプリ一覧を表示するための ListView を配置しています。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp"
tools:context=".MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView" />
</RelativeLayout>
手順3:MainActivity.java を実装する
src/MainActivity.java に以下のコードを追加します。
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.List;
public class MainActivity extends AppCompatActivity {
ListView listView;
ArrayAdapter arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
InstalledApps();
}
private void InstalledApps() {
List<PackageInfo> list = getPackageManager().getInstalledPackages(0);
for (int i = 0; i<list.size(); i++){
PackageInfo packageInfo = list.get(i);
if((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0){
String appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
Log.e("App List" + Integer.toString(i), appName);
arrayAdapter = new ArrayAdapter(this, R.layout.support_simple_spinner_dropdown_item, list);
listView.setAdapter(arrayAdapter);
}
}
}
}
コードのポイント
getPackageManager().getInstalledPackages(0)を呼び出すことで、端末にインストールされている全パッケージの情報を一括で取得できます。ApplicationInfo.FLAG_SYSTEMフラグをチェックすることで、OSに標準搭載されたシステムアプリを除外し、ユーザーが後からインストールしたアプリだけを抽出しています。loadLabel()メソッドを使うと、各アプリの表示名(ラベル)を取得でき、Logcatにも出力されます。
手順4:AndroidManifest.xml を確認する
androidManifest.xml は以下のように記述します。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
アプリを実行してみる
それでは、実際にアプリを起動してみましょう。実機のAndroidスマートフォンをPCに接続していることを前提としています。Android Studioでプロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックしてください。接続したモバイルデバイスを選択すると、端末の画面にインストール済みアプリの一覧が表示されます。

補足:Android 11以降で注意すべき点
Android 11(APIレベル30)以降では、プライバシー保護のためパッケージの可視性が制限されており、そのままでは一部のアプリ情報しか取得できません。すべてのインストール済みアプリを取得したい場合は、AndroidManifest.xml に以下のパーミッションを追加する必要があります。
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
なお、Google Playではこの権限の使用が制限されているため、公開アプリで利用する場合は事前にポリシーを確認しておきましょう。
-
Windowsにインストール済みの全プログラム一覧を取得する5つの方法
長年Windows PCを使っていると、気づけば数え切れないほどのプログラムをインストールしているものですが、そのすべてを正確に覚えている人はほとんどいないでしょう。 だからこそ、PCにインストールされているソフトウェアの一覧を取得する方法を知っておくと非常に便利です。新しいPCへ乗り換える際に同じ環境を再現したいときや、空き容量を確保するためにどのアプリを削除すべきかを素早く判断したいときにも役立ちます。 この記事では、Windows標準ツールとサードパーティ製ソフトを組み合わせて、Windows 10にインストールされたプログラムの一覧を取得する5つの方法を詳しく解説します。 1. レジス
-
Androidのアドウェアを完全除去!知っておきたい4つの対処法
アドウェアとは、ユーザーがオンライン中にバナーやポップアップといった望まない広告を自動的にダウンロード・表示する悪意あるアプリケーションのことです。Androidエコシステムを脅かすさまざまなマルウェアの一種であり、軽微な不具合から深刻な被害まで、端末に多大な影響を及ぼす可能性があります。アドウェアは、サードパーティ製アプリストアや怪しいWebサイトからアプリをダウンロードした際、悪意のあるリンクをクリックした際、あるいは気づかないうちに不正なアプリをインストールした際にスマートフォンへ感染します。幸い、アドウェアの駆除はそれほど難しくなく、以下で紹介する4つの方法のいずれかを実践すれば対処で