获取已安装的app
1、添加一个权限
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
2、代码,图片转base64字符串
var queryIntentActivities = mutableListOf<ResolveInfo>()
val intent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
queryIntentActivities =
packageManager.queryIntentActivities(intent, PackageManager.MATCH_ALL)
} else {
queryIntentActivities = packageManager.queryIntentActivities(intent, 0)
}
queryIntentActivities.forEach {
val bitmap = it.loadIcon(packageManager).toBitmap()
val size = bitmap.width * bitmap.height
val baos = ByteArrayOutputStream(size)
// 设置位图的压缩格式,质量为100%,并放入字节数组输出流中
// 设置位图的压缩格式,质量为100%,并放入字节数组输出流中
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos)
val imagedata = baos.toByteArray()
val icon: String = Base64.encodeToString(imagedata, Base64.DEFAULT)
val appName = it.loadLabel(packageManager).toString()
val appPackageName = it.activityInfo.applicationInfo.packageName
KLog.d(TAG,icon);
KLog.d(TAG,appName);
KLog.d(TAG,appPackageName);
}