我最近才开始使用android的存储,现在遇到了一个我找不到解决方案的问题。我通过ContentResolver查询相机拍摄的所有图像,这是我的第一个问题。它确实查询了我的一些相机图像,但不是全部。我的手机上大约有400张图片,但我只收到大约215张图片。以下是查询:
Cursor cur = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null, MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?",new String[]{"Camera"},MediaStore.Images.ImageColumns.DATE_TAKEN + " desc");
然后我在while循环中对光标中找到的所有数据进行一次循环:
if(cur != null && cur.getCount() > 0)
cur.moveToFirst();
cur.moveToPrevious();
while(cur.moveToNext())
{.....}
其次,我尝试获取每个图像的坐标,就像在拍摄位置一样。这是我的方法: 我在函数的开头初始化了一个空位置:
Location loc = new Location("");
然后我使用以下方法获取经度和纬度的列索引:
int latIndex = cur.getColumnIndex(MediaStore.Images.Media.LATITUDE);
int longIndex = cur.getColumnIndex(MediaStore.Images.Media.LONGITUDE);
最终,我使用以下代码获取每个图像的坐标:
loc.setLongitude(cur.getDouble(longIndex));
loc.setLatitude(cur.getDouble(latIndex));
问题是,所有图片上的坐标返回完全相同。虽然它们绝对不是放在同一地方。我还手动检查了厨房以确保并非所有照片都是在同一地点拍摄的,并且它们来自不同的地方。通过图像->详细信息。
如果可能的话,我真的很乐意提供一些帮助。谢谢!