从另一个Android应用程序安装apk而不使用SD卡

时间:2011-06-02 20:14:07

标签: android install apk package-managers

我能够下载一个apk文件并将其存储在我的/data/data/com.android.myApp/anotherApp.apk中。我想知道是否有一种方法可以从另一个应用程序安装此文件。我目前正在使用:

Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(filepath), "application/vnd.android.package-archive"); startActivity(intent);

这是我的清单文件:

当我跑这个。它给了我“解析错误:解析包时出现问题”。我不知道问题是什么? 1)我需要将应用程序存储在SD卡中吗?我不想这样做 2)许可问题? 3)安装了损坏的软件包?

3 个答案:

答案 0 :(得分:2)

您需要在filepath之前添加file://

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); startActivity(intent);

答案 1 :(得分:1)

通常,当您在应用程序沙箱中保存文件时,它们会保存在“files”文件夹下。所以你应该是完整的道路:

/data/data/com.android.myApp/files/anotherApp.apk 

如果您正在使用模拟器,则可以执行adb shell ls以确认文件是否确实存在:

adb shell "ls /data/data/com.android.myApp/files"

答案 2 :(得分:1)

试试这个伙伴......

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
startActivity(intent);