2017-02-09 11 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"のようなソフトウェアでは回復できないようにデータを消去してください。 [Here is more info](http://www.howtogeek.com/125521/htg-explains-why-deleted-files-can-be-recovered-and-how-you-can-prevent-it/) – Doomsknight

答えて

1

は必ずしも質問に答えるが、アドバイスのカップルのビットなし:

  • デバイスのメディアストアから写真を削除すると、それらの痕跡をすべて削除しません。特に、多くのデバイスは、削除されたものであっても、すべての写真のサムネイルを含むサムネイルキャッシュを維持する。これらのサムネイルには、多くの場合、顔やテキストを表示するのに十分な解像度があります。サムネイルキャッシュは別々に削除する必要があり、その場所はデバイスモデルによって異なります。

  • Androidデバイスからデータを消去する適切な方法は、すべてのデバイスが提供するファクトリ・リセットを実行することです。それでも、一部のデバイスの工場出荷時の設定では、内部メモリが完全に消去されないため、デバイスがルートされている場合でも写真が復元可能になる場合があります。

関連する問題