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

发布于 2024-11-13 05:44:52 字数 538 浏览 4 评论 0原文

我能够下载一个 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"); 启动活动(意图);

这是我的清单文件:

<代码> 当我运行这个时。它给我“解析错误:解析包时出现问题”。我不知道问题是什么? 1)我需要将应用程序存储在SD卡中吗?我不想那样做 2)权限问题? 3) 安装的软件包已损坏?

I was able to download an apk file and stored it in my /data/data/com.android.myApp/anotherApp.apk. I was wondering if there is a way I can install this file from another app. I am currently using:

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

And here is my manifest file:


When I run this. It gives me "Parse Error: There is a problem parsing the package". I dont know what the problem is?
1) Is it I need to store the app in the SD card? I dont want to do that
2) Permission issues?
3) corrupted package being installed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

为你拒绝所有暧昧 2024-11-20 05:44:52

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

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

You need to prepend filepath with file://:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); startActivity(intent);
可爱暴击 2024-11-20 05:44:52

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

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

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

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

Normally, when you save files on your app sandbox, they are saved under the "files" folder. So you're full path should be:

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

If you are working on an emulator you can do an adb shell ls to confirm if the file is actually there:

adb shell "ls /data/data/com.android.myApp/files"
心欲静而疯不止 2024-11-20 05:44:52

试试这位朋友...

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

Try this buddy...

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(path+"/yourapp.apk")), application/vnd.android.package-archive");
startActivity(intent);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文