下载.apk文件时打开android软件包安装程序

时间:2012-08-22 18:29:15

标签: android apk

有没有办法让Android OS在下载.apk文件时打开包安装程序?

也许是Content-Type?或者可能是APK特定网址协议,例如apk://apk.location

1 个答案:

答案 0 :(得分:1)

您是在自己的应用中自行下载,还是在外部应用中尝试创建某些行为?

我不认为您可以在应用程序外部下载时触发​​行为(因为用户必须选择下载的文件才能打开它),但如果您自己处理下载,我想你想要this发布如何以编程方式安装应用程序。

修改:在您的评论中说明您正在撰写网站并希望能够强制APK由原生应用打开:我可以想办法做某事喜欢它,但你必须在本机应用程序中处理下载,因为你不会让浏览器为你做下载。

您需要注册您的原生应用,以便以您选择的任何格式接收带有URI的ACTION_VIEW Intent;我建议使用像yourappname://localhost/escaped_download_url_to.apk这样的东西。在Activity中,从Intent中的URI获取路径并获取其最后一部分(URI处理分为几个组件:协议,主机和路径)。根据需要进行Unescape,然后在应用程序中手动开始下载,然后在完成后,使用我提供的链接从您的应用程序放置的任何地方打开下载的APK。

只要您确保移动网站提供hrefyourappname://localhost/escaped_download_url_to.apk,您就可以触发此行为。当用户点击该链接时,它应该提供一个对话框,用于选择要用于打开它的应用程序(如果他们有多个应用程序能够这样做),当他们选择您的应用时,将启动您Activity使用Intent过滤器注册。

编辑第二个:您可能不需要执行任何转义的URI;只要您的应用程序注册接收具有该协议的Intent,只需使用您在自己的帖子中建议的伪造的URI协议即可。 yourappname://yourserver.com/my/location.apk会奏效。真正重要的是能够从URI中提供给应用程序的数据中提取下载URL。