Веб-сервер для загрузки файлов на Android

Я хотел бы добавить веб-сервер в мое приложение для Android для загрузки небольших файлов на телефон.

Пользователь запускает веб-сервер с телефона, нажимая кнопку. Затем он увидит IP-адрес, доступ к которому может получить любой браузер с ПК. Веб-сайт за этим IP-адресом должен показывать возможность загрузки файла.

Мой вопрос: есть ли проект с открытым исходным кодом, аналогичный моим потребностям? Или как бы вы порекомендовали это сделать?

1 ответ

Решение

Вы можете использовать ссылку NanoHttpd, это очень веский веб-сервер Android, который хорошо встраивается.

package .....;

import java.io.IOException;
import java.util.Map.Entry;
import java.util.Properties;

import android.app.Activity;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Handler;
import android.widget.TextView;

public class AndroidWebServerActivity extends Activity {
private static final int PORT = 8765;
private TextView hello;
private MyHTTPD server;
private Handler handler = new Handler();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

}

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

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

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

private class MyHTTPD extends NanoHTTPD {
public MyHTTPD() throws IOException {
super(PORT, null);
}

@Override
public Response serve(String uri, String method, Properties header, Properties parms, Properties files) {
final StringBuilder buf = new StringBuilder();
for (Entry<Object, Object> kv : header.entrySet())
buf.append(kv.getKey() + " : " + kv.getValue() + "\n");
handler.post(new Runnable() {
@Override
public void run() {

}
});

final String html = "<html><head><head><body><h1>Hello, World</h1></body></html>";
return new NanoHTTPD.Response(HTTP_OK, MIME_HTML, html);
}
}
}
Другие вопросы по тегам