[Check the last change in the second half for updates to the main problem]
My phone saves its pictures to an SD card. I use CameraUIto take a picture, and then I would like to analyze and delete it.
Code (simplified):
private function startCapture():void
{
_camera = new CameraUI();
_camera.addEventListener( MediaEvent.COMPLETE, onCapture );
_camera.launch(MediaType.IMAGE);
}
private function onCapture(e:MediaEvent):void
{
var loader:Loader = new Loader();
_filePromise = e.data;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onAsyncMediaComplete);
loader.loadFilePromise(m__filePromise);
}
private function onAsyncMediaComplete(e:Event):void
{
var loader:Loader = (e.currentTarget as LoaderInfo).loader;
_filePromise.file.deleteFile();
}
I expect the image on the SD card to be deleted, but instead it is still there, and a new dummy file is created next to it. I traced the file url and gotstorage/sdcard0/DCIM/Camera/IMG_20131016_204700.jpg
My manifest manifest includes
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
EDIT:
, AIR : DCIM/Camera DCIM/100MEDIA. , DCIM (+ - 3 ) , event.data.file. . :
var date:Date = m__filePromise.file.modificationDate;
var size:Number = m__filePromise.file.size;
trace("looking for", date.time, size);
var cameraFolder:File = m__filePromise.file.parent.parent;
var pictureFolders:Array = cameraFolder.getDirectoryListing();
var pictures:Array;
for each(var folder:File in pictureFolders)
{
pictures = folder.getDirectoryListing();
for each(var pic:File in pictures)
{
if (pic.size == size &&
Math.abs(pic.modificationDate.time - date.time) < 3000)
{
trace("delete", pic.modificationDate.time, pic.size, pic.name);
pic.deleteFile();
}
}
}
, deleteFile , (0b) . , , , .