我遇到了一個問題,我正在使用相機應用拍照&該照片在我有機會在我的應用中使用之前被刪除。似乎只發生在某些設備上(三星Galaxy S2,三星Galaxy Tab 10.1和LG,不記得該型號)。我的應用程序中的每個活動都將屏幕方向設置爲縱向(清單:android:screenOrientation =「portrait」)。我如何重現問題: 1.從我的應用程序中點擊「拍照」按鈕,這將加載相機應用程序。 2.以縱向拍照,在合適的位置創建文件(基於我提供的URI)&在相機應用中顯示預覽。 3.保持設備在肖像&中點擊「保存圖像」(這會將您帶回我的應用程序)。 4.當我回到我的應用程序時,我檢查文件是否存在,而不是。Android - 相機意圖 - 刪除照片
如果以縱向拍攝照片,然後將設備旋轉到橫向(當顯示預覽時),然後點擊「保存圖像」(橫向時),照片不會被刪除。
如果以橫向模式拍攝照片(並在保存時讓設備保持橫向),照片不會被刪除。
如果以橫向拍攝照片,然後將預覽旋轉爲縱向,照片不會被刪除。
我讀過&谷歌搜索&已經拉出我的頭髮試圖找出這一個。
當拍攝照片&保存爲肖像時,當我的應用程序返回到我的應用程序時,我的應用程序在橫向,然後旋轉到肖像。
任何幫助(即使它是一個鏈接到另一個職位有答案)讚賞!
謝謝:)
下面是我的一些代碼(時出現問題,_cameraFileUri爲null):
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
_cameraFileUri = Uri.fromFile(new File(_tempFolder, "tempFromCamera.jpg"));
intent.putExtra(MediaStore.EXTRA_OUTPUT, _cameraFileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
if (_cameraFileUri != null) {
File origFile = new File(_cameraFileUri.getPath());
resizePhoto(origFile);
showPhoto();
} else {
Toast.makeText(getApplicationContext(), "Error: Capture Photo Failed.", Toast.LENGTH_LONG).show();
}
注意:startActivityForResult實際上被包圍在它自己的例程中的try/catch塊中。 if(_cameraFileUri! - null)在「onActivityResult」中,在檢查結果代碼等的代碼塊中,我忽略了從我的帖子和重讀後的所有內容,這看起來有點奇怪。想澄清:) – Chris
老實說,我在這個論壇發帖之前等了好一個星期。我知道,只要我發佈它,我會找出答案。 旋轉的應用程序是免費的。它重新創建活動,因此它正在重新運行onCreate方法。對於「管家」我刪除我的臨時文件夾中的文件。我在「onCreate」中這樣做。 因此,應用程序旋轉,重新通過「onCreate」,它從存儲(杜)刪除我的臨時文件。 :) – Chris
好你想通了。我花了一些時間才意識到你在告訴你解決了它。讓你的評論更加清晰,以免任何一位elsse花時間去調查 – png