PackageManagerのgetInstalledPackagesメソッドでインストールされているアプリを取得できる。
@SuppressLint("QueryPermissionsNeeded")
private fun updatePackageList() {
val pm: PackageManager = applicationContext.packageManager
val pkgInfoList: List<PackageInfo> = pm.getInstalledPackages(0)
for (pkgInfo: PackageInfo in pkgInfoList) {
Log.d(TAG, "packageName " + pkgInfo.packageName)
Log.d(TAG, "versionName " + pkgInfo.versionName)
Log.d(TAG, "longVersionCode " + pkgInfo.versionCode)
}
}
Android 11からは、PackageManagerで取得するアプリをAndroidManifest.xmlに宣言する必要がある
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.gesource.appversion">
<queries>
<package android:name="jp.gesource.app1" />
<package android:name="jp.gesource.app2" />
</queries>
...
</manifest>