端末にインストールされてるアプリのパッケージ名をアプリ内のコードで取得する。
公式ドキュメント
PackageManager#getInstalledPackages
を使えばいいらしい。
コード
val flag: Int = PackageManager.GET_META_DATA // ここに条件を指定するフラグを設定
// 全パッケージ取得(システムアプリ含む)
val packages: List<PackageInfo> = context.packageManager.getInstalledPackages(flag)
// パッケージ名だけに絞る
val packageNames: List<String> = packages.map { it.packageName }
// 取得したらあとはご自由に
packageNames.forEach { Log.d("PackageRepository", it) }
備考
割と簡単だった。
エミュレータだと163個くらいの数だった。
packageManager.getInstalledApplications
もあるけど、どっちでもいいか