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

&引用;Android版本4.2.2-无法调用wget下载文件或通过JAVA套接字。”;,wget,Wget,我正在尝试将wget与我的Android应用程序结合使用,该应用程序的目标是androidv4.2.2。我通过AndroidManifest.xml文件授予应用程序Internet权限,但这并没有解决问题。我仍然无法使用wget命令下载该文件。我还尝试使用java套接字来完成与服务器的连接并下载文件,但是,这并不起作用。Android版本4.2.2似乎对允许通过Android应用程序进行网络访问有限制。有人能帮我找到一个获得网络访问的解决方案,这样wget命令就可以在安卓应用程序上运行了吗?下面

我正在尝试将wget与我的Android应用程序结合使用,该应用程序的目标是androidv4.2.2。我通过AndroidManifest.xml文件授予应用程序Internet权限,但这并没有解决问题。我仍然无法使用wget命令下载该文件。我还尝试使用java套接字来完成与服务器的连接并下载文件,但是,这并不起作用。Android版本4.2.2似乎对允许通过Android应用程序进行网络访问有限制。有人能帮我找到一个获得网络访问的解决方案,这样wget命令就可以在安卓应用程序上运行了吗?下面是我用来测试命令的代码

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);
    }

}

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

我尝试了一个使用HttpURL Connection类从站点下载文件的示例,但没有成功。我正在使用的目标设备安卓4.1.1似乎对应用程序网络访问有限制。这可能是问题所在吗?我不确定android权限是否从您的应用程序进程传播到wget进程。这可能就是wget不起作用的原因。我会把这件事忘得一干二净。这是您将在linux中的bash脚本中使用的方法。这不是android应用程序的直接方法。请再次尝试HttpURLConnection。这就是路。找出哪里不起作用。在这里发布例外情况等。您在问题中说“我通过AndroidManifest.xml文件授予应用程序Internet权限”。在使用HttpURLConnection进行测试时,您已经这样做了吗?