まず、これが StackOverflow に関する私の最初の投稿であると言いたいので、これが正しく行われていることを願っています。
ユーザーのすべてのアプリを表示する Android アプリを作成しようとしています。私が抱えている問題は、一部のアプリが複数回表示されることです。パッケージに関連付けられたアクティビティを確認する方法がわかりませんが、次のような状況だと思います。
Android: インストールされたアクティビティのリストを、ランチャーに表示されるように、重複することなく取得する方法
インテント ソリューションは重複を表示しませんが、GridView での表示に似たものを使用するにはどうすればよいですか?
編集:迅速な対応ありがとうございます。これは、私がすでにパッケージを取得する方法です。ただし、0 フラグは使用していません。0 フラグを代入した後も、重複を受け取りました。GridView の動作と関係がありますか? グリッド ビューを下にスクロールして上に戻ると、リストの順序が異なることに気付きました。
アプリをリストに入れるためのコード:
ArrayList<ApplicationInfo> apps = (ArrayList<ApplicationInfo>) manager.getInstalledApplications(0); //manager is a variable containing getPackageManager
編集2:
次のコードを使用して ArrayList を出力した後:
for(int i = 0; i < apps.size(); i++){
Log.i((String) apps.get(i).loadLabel(manager), apps.get(i).packageName);
}
配列に重複はないと結論付けることができます。ただし、それらはどういうわけかグリッドビューに表示されます。
最終編集:
この質問に対する一番の答えは、GridViewの問題を解決することになりました: