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

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

解説

Java ライブラリの PackageManager と ApplicationInfo を使うと、デバイスにインストールされているアプリケーションの情報を取得することができます。 簡単なサンプルコードを以下に記します。このサンプルでは取得したアプリケーション名を ListBox の Items として追加しています。

void __fastcall TForm1::Button1Click(TObject *Sender)
{
// include に以下を追加します
// Androidapi.JNI.GraphicsContentViewText.hpp
// Androidapi.JNI.JavaTypes.hpp
// Androidapi.Helpers.hpp
// Androidapi.JNIBridge.hpp

  _di_JPackageManager PM;  // PackageManager
  _di_JList PL;            // 取得したパッケージ情報を格納するためのリスト
  _di_JApplicationInfo AI; // ApplicationInfo
  _di_JIterator iter;

// PackageManagerを取得する
  PM = TAndroidHelper::Activity->getPackageManager();

// JListにパッケージ情報を格納する
  PL = PM->getInstalledApplications(TJContext::JavaClass->BIND_AUTO_CREATE);
  iter = PL->iterator();

// 初期化
  int i=0;
  ListBox1->Items->Clear();

  while (iter->hasNext()) {
    // リストに格納されているパッケージ情報を1件取り出す
    AI = TJApplicationInfo::Wrap(_di_ILocalObject(PL->get(i))->GetObjectID());

    // ListBoxの itemsに loadLabelで取得したアプリケーション名をセットする
    ListBox1->Items->Add(JStringToString(AI->loadLabel(PM)->toString()));

    //次の項目へ
    i++;
    iter->next();
  }
}

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

AndroidProgramList.png

関連情報