I've exported an apk from eclipse. I am able to install it without any problem if I copy it to the phone's sd card.
When trying to download via phone's (Galaxy S) browser I get: "Download unsuccessful".
I have set mime type application/vnd.android.package-archive in the mime.types, restarted apache, still same result. Also tried :
<a href="downloads/my_apk.apk" type="application/vnd.android.package-archive">Download App</a>
Still no luck.
I am able to download and install applications from android market. I suspect that apache is not sending the mime type but this is just a shot in the dark. How can I fix the problem and be able to install APKs from my web server? (or at least开发者_Python百科 to check if apache sends correct header with mime type)
Any help will be appreciated.
It is better if you add the .apk extension to the apache`s mime config. Take a look at this example: https://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
You can just find the "apk" record and copy the row to the file /etc/mime.types at your server:
application/vnd.android.package-archive apk
Also add this to /etc/apache2/mods-available/mime.conf :
AddType application/vnd.android.package-archive .apk
(There are some other AddType-s, put it after them for sure). From here on you don't have to put anything for the apk`s mime-type in the tag, the server will handle this. ;)
UPDATE: fixed a bug in AddType line
After all I found the problem thanks in part to CommonsWare advise.
Directory where I put apks for downloads is protected by simpe auth. Phone's browser correctly asks (once) for username/password when browsing it but obviously forgets to send auth info when trying to download the file and that causes 401 Unauthorized.
Solution: remove basic auth from that dir or use another unprotected dir for the apks.
Use curl
to test the Web server to make sure it is responding to the HTTP request and returning the proper MIME type. Also, example your server logs to see what error is being logged.
Sometimes you have no access to apache configuration files like /etc/mime.types, especially on the shared servers. You can create file .htaccess (or open if it already exists) in your root directory and add the following string: AddType application/vnd.android.package-archive .apk Hope it helps.
精彩评论