以编程方式重新安装应用程序apk而不下载
由于这个恼人的Android限制,我需要用户重新安装我的应用程序,以便其他应用程序可以检测到清单权限。
这对用户来说已经是令人沮丧的事了,但是除此之外,我无法从存储在/ data / app中的apk中重新安装我的应用程序,因此我必须在启动之前将相同版本下载到存储卡通常的安装意图。
我急切地等待有人告诉我我错过了明显的东西! 我画了一张空白的...
提前致谢。
如果您希望看到问题解决,请为此问题做明星演示! 干杯。
编辑 :有了@hackbod的意见,你可以使用下面的代码来启动安装对话框。
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(this.getApplicationInfo().sourceDir)),
"application/vnd.android.package-archive");
startActivity(intent);
在我的Jelly Bean设备上,这提供了两个选项:软件包安装程序和验证并安装。 我不知道后者是否会处理以下问题:
我的申请是免费的,所以我无法测试付费问题:
尽管hackbod完成了'其他人可读',这表明如果您通过自己的代码执行此操作,对于您自己的应用程序,它可读? 如果你能测试这个,请纠正我,我错了。
可以想象,您可以通过Context.getApplicationInfo()。sourceDir获取.apk的路径,然后使用该路径启动应用程序安装程序。 但是,如果您的应用程序被向前锁定(由于应用程序加密,这对于JB开始的所有付费应用程序来说是不可避免的),所以这不起作用,因为您的应用程序可执行文件不可被其他人读取。 在这种情况下,您需要将.apk复制到世界可读的地方(例如在外部存储器中)并从那里安装。
不管你在这里做什么,这都会带来一些不可避免的负面后果:
最终,我只是不会建议这样做。 你需要什么权限才能迫使你这样做? 出于许多原因,我不会建议第三方应用程序在大多数情况下声明自己的权限,因为权限周围存在很多不好的用户体验,只有在需要它们之后才能知道。
链接地址: http://www.djcxy.com/p/85367.html上一篇: Reinstall application apk programmatically without downloading