var filePath = plus.io.convertLocalFileSystemURL("_doc/update/test.apk");
console.log(filePath)
var File = plus.android.importClass("java.io.File");
var apkFile = new File(filePath);
var Intent = plus.android.importClass("android.content.Intent");
var main = plus.android.runtimeMainActivity();
var Uri = plus.android.importClass("android.net.Uri");
var FileProvider = plus.android.importClass("android.support.v4.content.FileProvider");
var intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
var Build = plus.android.importClass("android.os.Build");
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
var contentUri = plus.android.invoke(FileProvider, "getUriForFile", main, "io.test.fileprovider", apkFile)
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
} else {
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
}
//卸载APP
//var packageURI = Uri.parse("package:io.test");
//var intent = new Intent(Intent.ACTION_DELETE, packageURI);
//main.startActivity(intent);
main.startActivity(intent);
上面这段代码在小米和华为EMUI10以下的手机执行是能够正确的安装apk文件的,但是放在EMUI10以上的手机执行的时候就会报错。
错误日志: Uncaught android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=application/vnd.android.package-archive flg=0x1 };at io.dcloud.PandoraEntryActivity.startActivity
这样的错误该怎样解决呀
9***@qq.com (作者)
你是用hbuilderx打包的吧
2020-07-28 14:16
fjy1012
回复 9***@qq.com: 云打包的
2020-07-29 09:01
9***@qq.com (作者)
回复 fjy1012: 用hbuilderx的云打包没有问题,使用hbuilder云打包就会有问题
2020-07-29 10:02
fjy1012
回复 9***@qq.com: 你这不搞笑吗,官方都说了应该用hbuilderX
2020-07-30 13:42
fjy1012
hbuilder是多少年前的东西?
2020-07-30 13:43