4***@qq.com
4***@qq.com
  • 发布:2019-10-28 19:12
  • 更新:2021-11-26 14:59
  • 阅读:1759

android,读取当前所有app的列表后,这个图标怎么做转化?请教下各位大佬

分类:MUI

{"appName":"HBuilder",
"packageName":"io.dcloud.HBuilder",
"versionName":"9.6.34",
"versionCode":90634,
"appIcon":{"UUID":"Invocation61044392","TYPE":"JSBObject","className":"android.graphics.drawable.BitmapDrawable"}
}
这是现在获取到的某个app的详情,我想请问下。这个appIcon 中的值,如何去转化成可读取的图标呢?

2019-10-28 19:12 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com (作者)

已找到方法,现在分享下
var ApplicationInfo = plus.android.importClass('android.content.pm.ApplicationInfo');
var MainActivity = plus.android.runtimeMainActivity();
var PackageManager = MainActivity.getPackageManager();
var pinfo = plus.android.invoke(PackageManager, 'getInstalledPackages', 0)
if (pinfo != null) {
var apklist = []
for (var i = 0; i < pinfo.size(); i++) {
//PackageInfo{4b45699f9d com.tencent.mobileqq}
var pkginfo = pinfo.get(i);
var issysapk = ((pkginfo.plusGetAttribute("applicationInfo").plusGetAttribute("flags") & ApplicationInfo.FLAG_SYSTEM) != 0) ? true : false
if(issysapk == false){
const apkinfo = {
appName:pkginfo.plusGetAttribute("applicationInfo").loadLabel(PackageManager).toString(), //应用名称
appIco:pkginfo.plusGetAttribute("applicationInfo").loadIcon(PackageManager),
packageName:pkginfo.plusGetAttribute("packageName"), // 包名
versionName:pkginfo.plusGetAttribute("versionName"), //版本号
versionCode:pkginfo.plusGetAttribute("versionCode")// 版本Code
}
var bimp=apkinfo.appIco.getBitmap();
//console.log("当前bitmap:"+bimp);
var BitmapFactory = plus.android.importClass("android.graphics.BitmapFactory");
var Base64 = plus.android.importClass("android.util.Base64");
var Bitmap = plus.android.importClass('android.graphics.Bitmap');
var ByteArrayOutputStream = plus.android.importClass("java.io.ByteArrayOutputStream");
try{
var baos = new ByteArrayOutputStream();
bimp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
baos.flush();
baos.close();
var bitmapBytes = baos.toByteArray();
var result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
document.getElementById("showImg").src="data:image/jpeg;base64,"+result;
}
catch(e){
console.log(e);
}
apklist.push(apkinfo);
}

                }
  • 6***@qq.com

    app 模式下,图片不显示是什么原因呢

    2020-08-01 00:40

  • zzhi_bo

    回复 6***@qq.com: getBitmap 这个是怎么来的呀

    2021-11-26 15:11

7***@qq.com

7***@qq.com - rocket

getBitmap是什么

  • 4***@qq.com (作者)

    不好意思。才看到。这个是引入的。全部的代码,在下面

    2020-10-28 17:09

  • z***@163.com

    回复 4***@qq.com: 引入什么?

    2020-11-30 17:17

  • 4***@qq.com (作者)

    回复 z***@163.com: 你先试试底下的完整代码。看看能不能跑。我是基于Mui写的,不是最新版本- -还是去年的呢

    2020-12-02 15:28

Huup_We

Huup_We

想问一下,转化的时间太慢了,有出现这个问题吗?

  • 4***@qq.com (作者)

    这个倒是没有。不过。可以考虑在 转化图片 这边做文章

    2020-10-28 17:10

小小是只猫

小小是只猫

报错apkinfo.appIco.getBitmap is not a function 这个getBitMap是什么啊

西樵农夫

西樵农夫

感谢大佬

西樵农夫

西樵农夫

大佬 BitmapDrawable类型 怎么转换成Bitmap类型 getBitmap方法是什么, 求教

l***@163.com

l***@163.com

我的图片就没有显示过,base64字符串出来了,但是为什么图片不显示呀?

  • zzhi_bo

    getBitMap 怎么来的呀? 求解

    2021-11-29 11:41

  • l***@163.com

    回复 zzhi_bo: 这个是android中获取的呀,引入类,调用方法就出来里,百度很容易找到答案的。

    2021-12-06 15:53

  • zzhi_bo

    回复 l***@163.com: 感谢大哥,终于出来了

    2021-12-07 10:30

zzhi_bo

zzhi_bo - 前端小次

getBitMap 是怎么来的呀,楼主解决没呀

该问题目前已经被锁定, 无法添加新回复