2

接続するデバイスが 2 つの機能を持つ Android アプリケーションに Web サーバーを組み込みたいと考えています。1つは、解析していくつかのことを実行できるxmlファイルを送信することであり、もう1つは、SDカードからファイルをダウンロードできるようにすることです。

nanoHTTPD や AndroidHTTPD などを見つけましたが、適切なドキュメントではなく、特にファイルをダウンロードする機能を提供する方法について問題に直面しています。上記以外のファイルまたは使いやすいライブラリを処理する良いチュートリアル/例はありますか?

4

1 に答える 1

3

2 つのことが頭に浮かびますが、どちらもパーミッションに関連しています。Android マニフェストを見てみましょう。アプリには 2 つのアクセス許可が必要です。

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

INTERNET、ネットワーク サービスにアクセスしているため、WRITE_EXTERNAL_STORAGE は、NanoHttpd が着信接続を受信すると一時ファイルを書き込み、ほとんど/すべての電話が「java.io.tmpdir」を SD カードを指すようにマップするためです。

基本的な NanoHttpd を拡張するクラスを作成し、実行するソケットを渡し、抽象 'serve()' メソッドを実装します。

クライアント アプリケーションが XML ファイルをアップロードするときは、標準のマルチパート フォーム エンコーディングで送信していることを確認してください。

応答をクライアントに送り返すときは、Response() オブジェクトを新しく作成し、( SD カード ファイルから) InputStreamを渡すか、コンテンツの String だけを渡すことができます。

例の形式でドキュメントが必要な場合は、NanoHttpd には、ファイルを提供する完全に機能する Web サーバーと、クライアント アプリケーションが送信するものをデバッグするのに最適な "DemoServer" と呼ばれるものが含まれています。Android 固有の例はまだありませんが、質問の量から、いくつか追加する必要があることがわかります。:)

ありがとう。お役に立てれば。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2013-07-31T12:58:55.677 に答える