Android 上にインストールされているアプリケーションの一覧を取得したい(Delphi)
解説
Java ライブラリの PackageManager と ApplicationInfo を使うと、デバイスにインストールされているアプリケーションの情報を取得することができます。 簡単なサンプルコードを以下に記します。このサンプルでは取得したアプリケーション名を ListBox の Items として追加しています。
// usesに以下を追加します // Androidapi.JNI.GraphicsContentViewText // Androidapi.JNI.JavaTypes // Androidapi.Helpers // Androidapi.JNIBridge procedure TForm1.Button1Click(Sender: TObject); var PM: JPackageManager; // PackageManager PL: JLlist; // 取得したパッケージ情報を格納するためのリスト AI: JApplicationInfo; // ApplicationInfo iter: JIterator; i: Integer; begin // PackageManagerを取得する PM := TAndroidHelper.Activity.getPackageManager; // JListにパッケージ情報を格納する PL: PM.getInstalledApplications(TJContext.JavaClass.BIND_AUTO_CREATE); iter := PL.Iterator; // 初期化 i := 0; ListBox1.Items.Clear; while iter.hasNext do begin // リストに格納されているパッケージ情報を1件取り出す AI := TJApplicationInfo.Wrap((PL.get(i) as ILocalObject).GetObjectID); // ListBoxの itemsに loadLabelで取得したアプリケーション名をセットする ListBox1.Items.Add(JStringtoString(AI.loadLabel(PM).toString)); // 次の項目へ i := i+1; iter.next; end; end;
実行すると以下のように一覧が表示されます。