2012年8月3日金曜日

Android で NanoHTTPD を使ってみる

android に webサーバ機能を追加

NanoHTTPD の情報
http://elonen.iki.fi/code/nanohttpd/

とりあえずやってみる

package com.example.servertest;

import java.io.File;
import java.io.IOException;
import java.util.Properties;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {
 private MyHTTPD server;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 }

 @Override
 protected void onResume() {
  super.onResume();

  try {
   server = new MyHTTPD(8080, null);
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 @Override
 protected void onPause() {
  super.onPause();
  if (server != null)
   server.stop();
 }

 private class MyHTTPD extends NanoHTTPD {


  public MyHTTPD(int port, File wwwroot) throws IOException {
   super(port, wwwroot);
   // TODO 自動生成されたコンストラクター・スタブ
  }

  @Override
  public Response serve(String uri, String method, Properties header,
    Properties parms, Properties files) {
   System.out.println(method + " '" + uri + "' ");
   String msg = "<html><body><h1>Hello server</h1>\n";
   msg += "</body></html>\n";
   return new NanoHTTPD.Response(HTTP_OK, MIME_HTML, msg);
  }
 }
}

マニフェストファイルの設定
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>

ダウンロードしてきた NanoHTTPD.java を同じパッケージ内に置く
実機にインストールしてアプリを実行する。

ブラウザでandroidのアドレスにアクセスする。


関連記事

0 件のコメント:

コメントを投稿