从另一个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"
答
您需要预先设置filepath
与file://
:
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);
该文件在那里。我使用Eclipse,我通过DDMS文件系统查找它。 – Abhishek 2011-06-02 20:39:30
该文件存在。我担心/ data/data目录读取了priveldges – Abhishek 2011-06-02 21:19:37
您能否显示构建filepath变量的代码?在你的问题中,你似乎错过了“/ files”元素。 – hopia 2011-06-02 22:56:33