私は現在 Android ランチャーを作成しており、さまざまなことを行う方法について Stackoverflow に多くの時間を費やしてきました。しかし、私は自分自身からアプリケーションを開く際に問題が発生しました。私が使用したコードは、このトピックに関する他の質問からまとめたものです。インストール済みのアプリのリストが表示されましたが、クリックすると自分のアプリが再度開かれます。間違った意図を間違った方法で使用していると思いますが、問題を解決する方法がわかりません。私の質問は次のとおりです。選択したアプリを開くより良い方法は何ですか? 以下は使用したコードです。注: 私はコーディングの初心者です。
PackageManager pm = this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List < String > myList = new ArrayList < String > ();
ArrayList < ResolveInfo > list = (ArrayList < ResolveInfo > ) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
for (ResolveInfo rInfo: list) {
System.out.println("Installed Applications " + rInfo.activityInfo.applicationInfo.loadIcon(pm).toString() + rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
myList.add(rInfo.activityInfo.applicationInfo.loadLabel(pm).toString());
}
ListView lists = (ListView) findViewById(R.id.content);
ArrayAdapter < String > aa = new ArrayAdapter < String > (this, android.R.layout.simple_list_item_1, myList);
lists.setAdapter(aa);
lists.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView <? > parent, View view, int position, long id) {
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.LAUNCHER");
PackageManager pm = getPackageManager();
i = pm.getLaunchIntentForPackage(getPackageName());
startActivity(i);
}
});