2014-03-03 5 views
2

캡처 한 이미지를 의도 한 카메라를 사용하고 있습니다.캡처 한 이미지가 갤러리에 나타나지 않습니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 
<uses-feature android:name="android.hardware.camera.autofocus" /> 

그리고 그것은 sendBroadcast가 더 이상 API 19 (4.4)에서 작동하는 것은 사실입니다 :하지만 갤러리에 체크인 할 때에 ..

String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 

Intent intent_cam = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);      
File imagesFolder = new File(Environment.getExternalStorageDirectory() + File.separator + "App Photos"); 

Intent mediaScan = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 

if (!imagesFolder.exists()) {  

imagesFolder.mkdirs();   
File image = new File(imagesFolder, "App_" + timeStamp + ".png"); 
Uri uriSavedImage = Uri.fromFile(image);   
intent_cam.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);  
mediaScan.setData(uriSavedImage); 
getActivity().sendBroadcast(mediaScan); 
startActivityForResult(intent_cam, 0);   
} 

else if (imagesFolder.exists()) { 

File image = new File(imagesFolder, "App_" + timeStamp + ".png"); 
Uri uriSavedImage = Uri.fromFile(image); 
intent_cam.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
mediaScan.setData(uriSavedImage); 
getActivity().sendBroadcast(mediaScan); 
startActivityForResult(intent_cam, 0);  

} 

를 매니페스트 표시되지 않는거야? Android How to use MediaScannerConnection scanFile

+1

당신은 onActivityResult()에서 미디어 스캔을 보내려고 했습니까 – JRowan

+0

@JRowan - 아니요 ... – luwionline

답변

1

그림을 캡처하기 전에 검색 요청을 호출하고 있습니다. startActivityForResult()이 비동기임을 상기하십시오. sendBroadcast() 전화를 onActivityResult()에 입력하면 카메라 작동이 제어를 반환 할 때 트리거됩니다.

+0

고마워요. 내 문제를 해결했다. 여전히 API 19에서 작동합니까? (4.4)? – luwionline

+0

@luwionline : 브로드 캐스트를 의미한다면 예, Android 4.4에서 작동합니다. – CommonsWare

+0

그리고 이것은 하나? sendBroadcast (새로운 인 텐트 (Intent.ACTION_MEDIA_MOUNTED, Uri.parse ("file : //"+ Environment.getExternalStorageDirectory()))); – luwionline

0

이 모든 안드로이드 버전에서 작동합니다

MediaScannerConnection.scanFile (이, 새로운 String [] {file.getPath()}, 새로운 String [] { "이미지/JPEG"}, NULL);

관련 문제