调用手机自带安装apk界面报出题目所描述的问题,最后发现是我把文件的下载地址设置错了。
/**
* 调出apk安装页面
* @param activity
* @param target
*/
public static void install(Activity activity, String target) {
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
Uri data = Uri.parse("file:///"+target);//这是下载的apk的位置
String type = "application/vnd.android.package-archive";
intent.setDataAndType(data,type);
activity.startActivityForResult(intent,REQUEST_INSTALL_ACTIVITY);
}
我是用的xutils3进行apk下载的,下面把关键步骤写出来,供需要的童鞋参考:
@Override
public void onSuccess(File result) {
//result.getAbsolutePath()是文件真正的下载位置
// 如果使用Environment.getExternalStorageDirectory().getAbsolutePath()+updateInfoBean.downloadurl;会提示安装包解析失败
String absolutePath = result.getAbsolutePath();
// TODO: 2017/9/17 安装文件
ApkUtils.install(SplashActivity.this,absolutePath);
}