Android 上にインストールされているアプリケーションの一覧を取得したい(C++)
解説
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(); } }
実行すると以下のように一覧が表示されます。