场景:实现自动安装apk程序
注意:不能使用 intent.setDataAndType(Uri.parse(apkPath), "application/vnd.android.package-archive");
看代码:
/**
* 打开APK程序代码
* @param apkPath
*/
public void openFile(String apkPath) {
Toast.makeText(mContext, "开始进行安装", Toast.LENGTH_SHORT).show();
try
{
Log.v("OpenFile", apkPath);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// intent.setDataAndType(Uri.parse(apkPath), "application/vnd.android.package-archive"); //此处错误,apkPath是路径而不是Uri的字符串,因此报错android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW
File apkFile = new File(apkPath);
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
mContext.startActivity(intent);
android.os.Process.killProcess(android.os.Process.myPid());
}
catch(Exception ex)
{
ex.printStackTrace();
}
}