Android 上にインストールされているアプリケーションの一覧を取得したい(Delphi)

提供: Support
移動先: 案内検索

解説

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;

実行すると以下のように一覧が表示されます。

AndroidProgramList.png

関連情報