Stop saving photos using Android native camera

后端 未结 5 1845
既然无缘
既然无缘 2020-11-29 03:27

I am using native Android camera and save file to my application data folder (/mnt/sdcard/Android/data/com.company.app/files/Pictures/). At the same time anther copy of phot

5条回答
  •  情话喂你
    2020-11-29 04:20

    Unfortunately, some smart phones save images in another folder such as DCIM/100MEDIA. So can't rely to these solution. I prefer use this way:

    String[] projection = new String[] {
         MediaStore.Images.ImageColumns._ID,
         MediaStore.Images.ImageColumns.DATA,
         MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
         MediaStore.Images.ImageColumns.DATE_TAKEN,
         MediaStore.Images.ImageColumns.MIME_TYPE};     
    
    final Cursor cursor = managedQuery(
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection, null, null,
         MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"); 
    
    if(cursor != null){
         cursor.moveToFirst();
         // you will find the last taken picture here and can delete that
    }
    

    I tried to find out if a second copy exists and delete the copy. I used the above code to find the last taken picture.

    Notice: Don't use cursor.close(); after using managedQuery, Leave the cursor for the Android system to manage and don't call that. You can see managedQuery()

    Notice2: The managedQuery method is deprecated and it should be avoided, implement CursorLoaders instead.

提交回复
热议问题