无法安装APK托管我自己的apache服务器

Ogn*_*yan 11 android

我从eclipse导出了一个apk.如果我将它复制到手机的SD卡,我可以毫无问题地安装它.

当试图通过手机(Galaxy S)浏览器下载时,我得到:"下载失败".

我在mime.types中设置了mime类型的application/vnd.android.package-archive,重启了apache,结果仍然相同.还尝试过:

<a href="downloads/my_apk.apk" type="application/vnd.android.package-archive">Download App</a>
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.

我可以从Android市场下载和安装应用程序.我怀疑apache没有发送mime类型,但这只是在黑暗中拍摄.如何解决问题并能够从我的Web服务器安装APK?(或至少检查apache是​​否使用mime类型发送正确的标头)

任何帮助将不胜感激.

Vas*_*pov 18

如果你将.apk扩展名添加到apache的mime配置中会更好.看一下这个例子:https: //svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

您可以找到"apk"记录并将该行复制到服务器上的文件/etc/mime.types:

application/vnd.android.package-archive     apk
Run Code Online (Sandbox Code Playgroud)

同时将其添加到/etc/apache2/mods-available/mime.conf:

AddType application/vnd.android.package-archive .apk
Run Code Online (Sandbox Code Playgroud)

(还有其他一些AddType-s,肯定会把它放在它们之后).从这里开始,你不必在标签中添加apk的mime-type,服务器将处理这个问题.;)

更新:修复了AddType行中的错误


Ogn*_*yan 10

毕竟我发现问题部分归功于CommonsWare的建议.

我下载apks用于下载的目录受simpe auth保护.手机的浏览器在浏览时正确询问(一次)用户名/密码但显然在尝试下载文件时忘记发送身份验证信息,导致401 Unauthorized.

解决方案:从该目录中删除基本身份验证或使用其他未受保护的目录来执行apks.