【发布时间】:2012-08-22 18:29:15
【问题描述】:
有没有办法在下载 .apk 文件时向 Android 操作系统发出信号以打开包安装程序?
也许是按内容类型?或者可能是 APK 特定的 url 协议,例如 apk://apk.location?
【问题讨论】:
有没有办法在下载 .apk 文件时向 Android 操作系统发出信号以打开包安装程序?
也许是按内容类型?或者可能是 APK 特定的 url 协议,例如 apk://apk.location?
【问题讨论】:
您是在自己的应用中自行下载,还是尝试在外部应用中创建某些行为?
我认为您无法在应用外部下载时触发行为(因为用户必须选择下载的文件才能打开它),但如果您自己处理下载,我想您希望this 发布有关如何以编程方式安装应用程序的信息。
编辑:解决您说您正在编写网站并希望能够强制 APK 由本机应用程序打开的评论:我可以想办法做某事喜欢它,但是您必须在本机应用程序中处理下载,因为您不会让浏览器为您进行下载。
您需要注册您的本机应用程序以接收带有您选择的任何格式的 URI 的 ACTION_VIEW Intents;我建议使用yourappname://localhost/escaped_download_url_to.apk 之类的东西。在您的Activity 中,从Intent 中的URI 获取路径并获取它的最后一部分(URI 处理分为几个组件:协议、主机和路径)。必要时取消转义,然后在应用中手动开始下载,完成后,您可以使用我提供的链接从应用放置的任何位置打开下载的 APK。
只要您确保您的移动网站提供href 到yourappname://localhost/escaped_download_url_to.apk,您就可以触发此行为。当用户单击该链接时,它应该提供一个对话框来选择使用哪个应用程序来打开它(如果他们有多个应用程序能够这样做),当他们选择您的应用程序时将启动您注册的Activity Intent 过滤器。
编辑第二个:您可能不需要做任何转义的 URI;只要您的应用程序注册以使用该协议接收 Intent,只需按照您在自己的帖子中的建议使用虚构的 URI 协议即可。 yourappname://yourserver.com/my/location.apk 将工作。真正重要的是能够从 URI 中提供给应用的数据中提取下载 URL。
【讨论】: