我正在尝试将wget用于我的Android应用,该应用针对Android v 4.2.2。我通过AndroidManifest.xml文件授予了应用程序Internet权限,但这并没有解决问题。我仍然无法使用wget命令下载该文件。我也尝试使用java套接字来完成与服务器的连接并下载文件,但是,这不起作用。似乎Android版本4.2.2限制允许通过Android应用程序进行网络访问。有人可以帮我确定一个解决方案来获取网络访问权限,这样wget命令可以在Android应用程序中运行吗?下面是我用来测试命令的代码。
private String runShellCommand() {
try {
Process process = Runtime.getRuntime().exec("system/bin/wget -O /data/data/com.shell/filename http://url to the file");
InputStreamReader reader = new InputStreamReader(process.getInputStream());
BufferedReader bufferedReader = new BufferedReader(reader);
int numRead;
char[] buffer = new char[5000];
StringBuffer commandOutput = new StringBuffer();
while ((numRead = bufferedReader.read(buffer)) > 0) {
commandOutput.append(buffer, 0, numRead);
}
bufferedReader.close();
process.waitFor();
return commandOutput.toString();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
答案 0 :(得分:0)
您的目标似乎是下载文件而不是正确使用wget。要在您的应用程序中下载文件,这是一个保守和可移植的解决方案,请尝试使用URL类和HttpURLConnection类,或者Android上可用的其他类,并且适合基于URL下载。