Android OkHttp下载的图像未保存在存储器中

Android OkHttp下载的图像未保存在存储器中,android,okhttp,fileoutputstream,Android,Okhttp,Fileoutputstream,我使用以下代码下载图像并将其保存在内部存储器或SD卡上。它不会显示任何错误,但是不会创建文件 private void requestImage(String url) { Request request = new Request.Builder() .url(url) .build(); httpClient.newCall(request).enqueue(new Callback() {

我使用以下代码下载图像并将其保存在内部存储器或SD卡上。它不会显示任何错误,但是不会创建文件

private void requestImage(String url) {
        Request request = new Request.Builder()
                .url(url)
                .build();

        httpClient.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Request request, IOException e) {

            }

            @Override
            public void onResponse(Response response) throws IOException {

                try {
                    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);

                    final File file = getFilePath();
                    FileOutputStream ostream = new FileOutputStream(file, false);
                    ostream.write(response.body().bytes());
                    ostream.flush();
                    ostream.close();

                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {

                            pagerAdapter.add(file.getAbsolutePath());

                        }
                    });

                    imagesLoaded++;

                    if (imagesLoaded < pageList.size()) {
                        requestImage(pageList.get(imagesLoaded - 1));
                    }

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    private File getFilePath() throws IOException {
        if (isExternalStorageWritable()) {

            File dir = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "hq");
            if (!dir.exists()) {
                dir.mkdirs();
            }

            return new File(dir, String.valueOf(imagesLoaded) + ".jpg");
        }
        else {
            return File.createTempFile(String.valueOf(imagesLoaded) + ".jpg", null, getFilesDir());
        }
    }

    /* Checks if external storage is available for read and write */
    public boolean isExternalStorageWritable() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            return true;
        }
        return false;
    }

    /* Checks if external storage is available to at least read */
    public boolean isExternalStorageReadable() {
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state) ||
                Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            return true;
        }
        return false;
    }
private void requestImage(字符串url){
Request Request=newrequest.Builder()
.url(url)
.build();
httpClient.newCall(请求).enqueue(新回调(){
@凌驾
公共void onFailure(请求,IOE异常){
}
@凌驾
public void onResponse(Response-Response)引发IOException{
试一试{
如果(!response.issusccessful())抛出新IOException(“意外代码”+响应);
最终文件=getFilePath();
FileOutputStream ostream=新FileOutputStream(文件,false);
write(response.body().bytes());
ostream.flush();
ostream.close();
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
pagerAdapter.add(file.getAbsolutePath());
}
});
imagesLoaded++;
if(imagesLoaded
目录是否已创建?是的,它们已创建(在内部存储器上,即使isExternalStorageWritable返回true);是的,它们已创建(在内部存储器上,即使IserExternalStorageWritable返回true)