2014-02-18 127 views
0

我有一個代碼,從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

您是如何閱讀時間戳的? – AndyFaizan

+0

我不知道如何 – Casper

+0

你正在使用哪個相機應用程序?你正在使用真實的設備還是模擬器?這可能聽起來很愚蠢,但請檢查設備上的日期 – AndyFaizan

回答

0

,請手動從設備設置中檢查TimeDate

如果您使用的是Android Virtual Device,很可能它會使用您的PC時間。所以確保你的電腦時間是正確的。

提示:嘗試在創建後通過在最後寫入一個額外的字符(不會影響圖像)來修改圖像,並查看最後修改日期,如果它自1969年以來,則問題出現以上

+0

如果我直接使用相機應用程序,日期是好的。但是當從我的應用程序使用它時,日期是錯誤的(1969年)。然而,仿真器的日期似乎是正確的,這個問題只發生在真實的設備上(我已經用很多不同的設備測試過) – Casper

+0

您是否僅僅通過圖像或者創建任何類型的文件來執行此操作? –

+0

我剛剛從我的應用程序中檢查了繪圖功能,保存的圖像也得到了錯誤的日期,這有什麼問題? – Casper

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 
    }