i finally figure out how to do this after enough time of studying the NanoHTTPD Framework.The code below helps me to navigate within the directories in the host android device:
@Override
public Response serve(String uri, Method method,
Map<String, String> header, Map<String, String> parameters,
Map<String, String> files) {
File rootDir = Environment.getExternalStorageDirectory();
File[] filesList = null;
String filepath = "";
if (uri.trim().isEmpty()) {
filesList = rootDir.listFiles();
} else {
filepath = uri.trim();
}
filesList = new File(filepath).listFiles();
String answer = "<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>sdcard0 - TECNO P5 - WiFi File Transfer Pro</title>";
if (new File(filepath).isDirectory()) {
for (File detailsOfFiles : filesList) {
answer += "<a href="" + detailsOfFiles.getAbsolutePath()
+ "" alt = "">"
+ detailsOfFiles.getAbsolutePath() + "</a><br>";
}
} else {
}
answer += "</head></html>" + "uri: " + uri + "
files " + files
+ "
parameters " + parameters + "
header ";
return new NanoHTTPD.Response(answer);
}
the uri parameter in the Response Method contains browser url at that point in time:
Example if url displaying on the address bar is: /192.168.43.1:8080/storage/sdcard1/Smadav_2012_Rev._9.0, then uri contains /storage/sdcard1/Smadav_2012_Rev._9.0. What i did is to just pass the uri as a filepath and of course, this is not the case for first connection when the uri is empty.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…