Android,File.length()返回0(有时),对于现有(allways)文件

时间:2017-03-27 00:50:48

标签: android file camera is-empty

对不起,对于我的英语,以及我很难为这个问题提出全面的标题。

我从相机上得到了一张照片。你怎么能克服以下代码的android 6.0版本的奇怪行为。在仿真器API23和版本4.0.3的设备上运行时,这种情况永远不会发生!

ContentValues valuesHeaders = new ContentValues();
File photoFile = new File(fileName);    

//
//big problem - 8 times from 10 length value is 0 
valuesHeaders.put("columnname", photoFile.length());
....
//
//big problem - 8 times from 10 blob is empty
RandomAccessFile randomAccessFile = new RandomAccessFile(photoFile, "r");
byte blob[] = new byte[(int) photoFile.length()];
randomAccessFile.readFully(blob);

但与此同时,下面有几行代码(但在开头它更高,但我改变了地方以避免任何影响),在同一个函数中,这个文件总是可用的 用于提取缩略图。始终和两种方式,在所有设备(4.0.3和6.0)和模拟器API23上。

ExifInterface exif = new ExifInterface(fileName);
if (exif.hasThumbnail()) {
   byte[] thumbnail = exif.getThumbnail();
}else{
     ...
     BitmapFactory.decodeFile(fileName, options);
     ...
}

为什么length()会返回0?

0 个答案:

没有答案