我有一个代码从Android设备调用相机意图来拍照,之后它将返回到拍摄照片的上一个活动。一切正常,但问题是照片的时间戳(当检查图库中的照片细节时)是在1969年创建的。我不知道为什么会发生这种情况
Uri mCapturedImageURI;
public void onClick(View v) {
ContentValues values = new ContentValues();
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(cameraIntent, TAKE_PHOTO);
}
答案 0 :(得分:0)
如果您使用的是真实设备进行测试,请手动检查设备设置中的Time
和Date
。
如果您使用的是Android Virtual Device
,很可能它会使用您的PC时间。因此,请确保您的PC时间正确。
提示:尝试在创建后通过在末尾写一个额外的字符来修改图像(不会影响图像)并查看上次修改日期,如果它也是自1969年以来,那么问题是上面的
答案 1 :(得分:0)
我遇到了同样的问题,然后我找到了解决方案。
首先,我在调用android.provider.MediaStore.ACTION_IMAGE_CAPTURE
之前放置了以下代码
ContentValues values = new ContentValues();
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
然后问题就开始了。
然后,我将代码置于onActivityResult
回调中,解决了我的问题。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ContentValues values = new ContentValues();
this.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
startImageUpload(); // My upload process
}