
目前这个方法获取到的base64无法显示
pkginfo.plusGetAttribute('applicationInfo').loadIcon(PackageManager)返回的对象不一样
有些是android.graphics.drawable.BitmapDrawable
有些是android.graphics.drawable.AdaptiveIconDrawable
getApp() {
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);
console.log("pinfo", plus.android.invoke(pinfo, 'size'))
if (pinfo != null) {
var apklist = [];
for (var i = 0; i < plus.android.invoke(pinfo, 'size'); i++) {
//PackageInfo{4b45699f9d com.tencent.mobileqq}
var pkginfo = plus.android.invoke(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 = plus.android.invoke( apkinfo.appIco, 'getBitmap');
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, 40, baos);
baos.flush();
baos.close();
var bitmapBytes = baos.toByteArray();
var result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
var src = 'data:image/jpeg;base64,' + result;
var asd = {
src:src
}
console.log(asd)
} catch (e) {
console.log(e);
}
apklist.push(apkinfo);
}
}
}
}
- 1