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

问题描述:

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

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

这里是我的清单文件:

当我运行这一点。它给了我“解析错误:解析包有问题”。我不知道问题是什么? 1)是否需要将应用程序存储在SD卡中?我不想那么做 2)权限问题? 3)正在安装损坏的软件包?

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

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

如果你是在模拟器上工作,你可以做一个亚行外壳LS确认,如果该文件是居然还有:

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

该文件在那里。我使用Eclipse,我通过DDMS文件系统查找它。 – Abhishek 2011-06-02 20:39:30

+0

该文件存在。我担心/ data/data目录读取了priveldges – Abhishek 2011-06-02 21:19:37

+0

您能否显示构建filepath变量的代码?在你的问题中,你似乎错过了“/ files”元素。 – hopia 2011-06-02 22:56:33

您需要预先设置filepathfile://

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

试试这个哥们......

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