2017-02-09 7 views
0

В моем приложении есть кнопка, которая удалит все фотографии в телефоне до ее продажи, поэтому никто не может видеть фотографии в телефоне.Удалить все фотографии с устройства Android

этот код позади этой кнопки это

 List<Long> mediaStoreIds = new ArrayList<Long>(); 

     Cursor c = getApplicationContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, null, null, null); 

     if (c != null) { 
      final int id = c.getColumnIndexOrThrow(BaseColumns._ID); 

      c.moveToFirst(); 
      while (!c.isAfterLast()) { 
       Long mediaStoreId = c.getLong(id); 

       mediaStoreIds.add(mediaStoreId); 
       getApplicationContext().getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, BaseColumns._ID + "=?", new String[]{Long.toString(mediaStoreId)}); 

       c.moveToNext(); 
      } 
      c.close(); 
     } 


    } 

проблема заключается в том, что, когда отладчик достигнет этой линии он останавливается

Cursor c = getApplicationContext().getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{BaseColumns._ID}, null, null, null); 

не знаю, почему он останавливается, и как это исправить

любой может помочь мне здесь?

Благодаря

+1

Я думаю, для этого требуется разрешение. Вы объявили их в своем манифесте и коде? – 0xDEADC0DE

+1

, чтобы добавить к правильному ответу Дмитрию, удалив фотографию, чтобы она не отображалась в файловом браузере и фактически очищала данные, чтобы их невозможно было восстановить с помощью программного обеспечения, такого как «Recuva», это две разные вещи. [Здесь больше информации] (http://www.howtogeek.com/125521/htg-explains-why-deleted-files-can-be-recovered-and-how-you-can-prevent-it/) – Doomsknight

ответ

1

Не обязательно отвечать на вопрос, но пару битов советов:

  • Удаление фотографий из MediaStore устройства не удаляет все следы их. В частности, многие устройства поддерживают эскиз кеша, который содержит эскизы всех фотографий, даже удаленных. Эти миниатюры часто имеют достаточное разрешение, чтобы видеть лица и текст. Кэш эскизов необходимо удалить отдельно, а его местоположение зависит от разных моделей устройств.

  • Правильный способ стереть данные с устройства Android - это выполнить заводскую перезагрузку, которая является функцией, которую предлагают все устройства. И даже тогда, заводская перезагрузка на некоторых устройствах не полностью очищает внутреннюю память, а это значит, что фотографии могут быть восстановлены, если устройство укоренено.

Смежные вопросы