Ikeda->Weblog();

Ikedaの徒然雑記。

Mobile Communication

[TIPS] AndroidにWebから直接apkファイルをダウンロードさせる

| 1件のコメント

[TIPS] AndroidにWebから直接apkファイルをダウンロードさせるこんばんは、ikedaです。忘れないよう備忘録。

Webサイトから直接ファイルをAndroid機にダウンロードさせる場合、PCと同じ方法ではちょっと不具合があるようです。



BASIC認証とかでクローズドなエリアから、会員限定でダウンロードしてもらう、、なんて機能を作ろうとして、「PCブラウザからは問題なく落ちてくるのに、なぜかAndroidでは失敗してしまう」なんてことがあります。また、「ダウンロードできません。この携帯電話ではサポートされていないコンテンツです。」とか、アプリで開くかダウンロードするのかどっちやねん!?的な警告が出てきたりします。

回避するには

Content-Typeを
  • application/vnd..package-archive
にすることで,AndroidにこれはAPKファイルである、と認識させることができます。

もちろんこれをインストールできるかどうかは「開発元不明のアプリのインストールを許可」してあるかどうかで変わってきますが・・・

さ・ら・に

BASIC認証などがかかっていた場合、ファイルダウンロードしようとして失敗すると思います。

ここからは僕の推測なのですが、、、

通常のPCブラウザ等は、ファイルダウンロードも基本的に「自力」で行います。ですので、その前段階でBASIC認証をクリアしていれば、ダウンロード時もその認証情報がサーバに送信されます。

ですが、Androidの場合(というか自分のHTC Jの場合)、どうもファイルのダウンロードは専用の「ダウンローダー」アプリが担当するようです。となると、いくらブラウザで認証を通していてもダウンローダーにその情報が通知され、なおかつダウンローダーがBASIC認証等に対応できなくてはいけません。

失敗してしまうのはおそらくこのどちらか、または両方が原因なのでは・・と推測しています。

まとめ

  • Content-Typeを「application/vnd.android.package-archive」に
  • それでもダメならBASIC認証を疑ってみる