对不起,对于我的英语,以及我很难为这个问题提出全面的标题。
我从相机上得到了一张照片。你怎么能克服以下代码的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?