c++Builder http://edn.embarcadero.com/article/44700
Delphi http://edn.embarcadero.com/article/44698
Android http://qiita.com/shota_low/items/b2ee7fb1fd353f69d...
// include に以下を追加します #include <Androidapi.Helpers.hpp> #include <Androidapi.JNI.JavaTypes.hpp> #include <Androidapi.JNI.GraphicsContentViewText.hpp> #include <Androidapi.JNIBridge.hpp> void __fastcall TForm1::Button1Click(TObject *Sender) { _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())); // ListBoxの itemsに パッケージ名をセットする // bachelor追記 ListBox1->Items->Add(JStringToString(AI->packageName->toString()); // bachelor追記 //次の項目へ i++; iter->next(); } }
Delphi http://edn.embarcadero.com/article/44698
// usesに以下を追加します // Androidapi.JNI.GraphicsContentViewText // Androidapi.JNI.JavaTypes // Androidapi.Helpers // Androidapi.JNIBridge 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;
Android http://qiita.com/shota_low/items/b2ee7fb1fd353f69d...
MainActivity.java // import部分は略 public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 端末にインストール済のアプリケーション一覧情報を取得 final PackageManager pm = getPackageManager(); final int flags = PackageManager.GET_UNINSTALLED_PACKAGES | PackageManager.GET_DISABLED_COMPONENTS; final List<ApplicationInfo> installedAppList = pm.getInstalledApplications(flags); // リストに一覧データを格納する final List<AppData> dataList = new ArrayList<AppData>(); for (ApplicationInfo app : installedAppList) { AppData data = new AppData(); data.label = app.loadLabel(pm).toString(); data.icon = app.loadIcon(pm); data.pname = app.packageName; dataList.add(data); } // リストビューにアプリケーションの一覧を表示する final ListView listView = new ListView(this); listView.setAdapter(new AppListAdapter(this, dataList)); //クリック処理 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ApplicationInfo item = installedAppList.get(position); PackageManager pManager = getPackageManager(); Intent intent = pManager.getLaunchIntentForPackage(item.packageName); startActivity(intent); } }); setContentView(listView); } // アプリケーションデータ格納クラス private static class AppData { String label; Drawable icon; String pname; } // アプリケーションのラベルとアイコンを表示するためのアダプタークラス private static class AppListAdapter extends ArrayAdapter<AppData> { private final LayoutInflater mInflater; public AppListAdapter(Context context, List<AppData> dataList) { super(context, R.layout.activity_main); mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); addAll(dataList); } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = new ViewHolder(); if (convertView == null) { convertView = mInflater.inflate(R.layout.activity_main, parent, false); holder.textLabel = (TextView) convertView.findViewById(R.id.label); holder.imageIcon = (ImageView) convertView.findViewById(R.id.icon); holder.packageName = (TextView) convertView.findViewById(R.id.pname); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } // 表示データを取得 final AppData data = getItem(position); // ラベルとアイコンをリストビューに設定 holder.textLabel.setText(data.label); holder.imageIcon.setImageDrawable(data.icon); holder.packageName.setText(data.pname); return convertView; } } // ビューホルダー private static class ViewHolder { TextView textLabel; ImageView imageIcon; TextView packageName; } //あとは略 }
コメントをかく