“Android版本4.2.2 - 无法调用wget下载文件或通过JAVA套接字。”

时间:2013-04-29 18:35:23

标签: wget

我正在尝试将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);
    }

}

1 个答案:

答案 0 :(得分:0)

您的目标似乎是下载文件而不是正确使用wget。要在您的应用程序中下载文件,这是一个保守和可移植的解决方案,请尝试使用URL类和HttpURLConnection类,或者Android上可用的其他类,并且适合基于URL下载。