我正在尝试从我的设备的下载目录安装apk
。我的硬编码解决方案就像一个魅力 -
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "update.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
但是一旦我改成它
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "update.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
我得到解析包错误。我究竟做错了什么????
返回的值
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
是/ storage / emulated / 0 /在最后下载缺少的'/'。你的路径应该是'/update.apk'
您需要按如下方式使用它:
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/update.apk")), "application/vnd.android.package-archive");