Android 安卓:虚拟机无法从网站下载文件

Android 安卓:虚拟机无法从网站下载文件,android,Android,我已经编写了一个应用程序,可以从给定的url路径下载.PDF文件。 但是当我在虚拟机中运行它时,我发现我的应用程序无法下载该文件。 因此,我在虚拟机中尝试了下载管理器,但它仍然无法下载文件。 下载管理停止,只是始终显示“正在进行”。 谁能告诉我这个问题的原因和解决方法吗? 提前谢谢! PS:我写了这个 public File writeFileToSDCard(String path,String fileName,InputStream in){ File file = null;

我已经编写了一个应用程序,可以从给定的url路径下载.PDF文件。 但是当我在虚拟机中运行它时,我发现我的应用程序无法下载该文件。 因此,我在虚拟机中尝试了下载管理器,但它仍然无法下载文件。 下载管理停止,只是始终显示“正在进行”。 谁能告诉我这个问题的原因和解决方法吗? 提前谢谢! PS:我写了这个

public File writeFileToSDCard(String path,String fileName,InputStream in){
    File file = null;
    OutputStream out = null;
    try{
        if(!createDir(path)){
            Log.e("FileUtils.java", "writeFileToSDCard().createDir() failed!");
        }else{
            Log.e("FileUtils.java", "writeFileToSDCard().createDir() Successed!");
        }
        file = createFile(path+fileName);
        out = new FileOutputStream(file);
        byte buffer[] = new byte[128];
        //write the file
        do{
            int length = in.read(buffer);
            if(length != -1){
                Log.e("FileUtils.java", "Writing to card!");
                out.write(buffer, 0, length);
            }else{
                break;
            }
        }while(true);
    }catch(Exception e){
        Log.e("FileUtils.java", "writeFileToSDCard() failed!");
    }finally {
        try{
            out.close();
        }catch (Exception e) {
            Log.e("FileUtils.java", "writeFileToSDCard() finally failed!");
        }
    }
    return file;
}

*PSS:*我不认为我的代码出了问题,但这是android emulator的问题吗?

很可能是因为您没有从服务器下载文件的权限

几天前我遇到了一个类似的问题,我通过在服务器目录中创建一个.htacces文件解决了这个问题。创建一个名为.htacess的文件,其中包含以下内容:

satisfy any
并将其保存在pdf文件所在的目录中。我不熟悉这是如何工作的,但我想这与权限有关。请注意,如果您这样做,任何人都可以访问该目录的内容。我相信这只适用于Apache服务器


不知道它是否有效,但值得一试。

请发布您的下载代码和您试图下载的文件的url。所谓vm,您是指android emulator吗?你试过从实际设备下载文件吗?@Zhao你试过从实际设备下载文件吗?@Aki nope。这是因为模拟器无法从web下载文件吗?谢谢你的回答。但是PDF文件位于网站中,我无法编写.htacess文件并将其放入its服务器。谢谢:-)