我正在尝试使用新版本的未签名应用程序更新我当前的未签名应用程序,但它总是给出类似“未安装应用程序”的错误。
是否有任何参考说明无法安装未签名的 apk。
这是我的代码:
try {
File file = FileUtils.getExternalStorageFile("apk_folder", Constants.APK_FILE_NAME);
if (file.exists()) {
Uri packageURI = Uri.parse(pInfo.packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, packageURI);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri apkURI = FileProvider.getUriForFile(getApplicationContext(), getPackageName() + ".provider", file);
intent.setDataAndType(apkURI, "application/vnd.android.package-archive");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
}
startActivity(intent);
//Set APK updated.
LMPSharedPrefs.getInstance().write(SharedPrefsConstants.KEY_APK_UPDATED, Constants.APK_UPDATED);
//Delete APK from file.
FileUtils.deleteFileFromExternalStorage("apk_folder", Constants.APK_FILE_NAME);
} else{
Log.d("APK", "APK file is not present" );
}
} catch (Exception e) {
Log.d("Exception", "Exception while updating the APK" + e.getLocalizedMessage());
}
这是我的 provider_path.xml :
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path name="filePath" path="." />
<external-path name="external_files" path="/apk_folder/"/>
</paths>
让我知道我是否做错了什么。