Android 6.0 – archivos de almacenamiento externos que se eliminan al desinstalar la aplicación

Mi aplicación utiliza el DownloadManager para descargar archivos en un subdirectorio de la carpeta de música del dispositivo.

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); ... File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) + "/MyStuff/song.mp3"); request.setDestinationUri(Uri.fromFile(file)); 

He notado que los archivos se están eliminando cuando la aplicación se desinstala de un dispositivo que ejecuta Marshmallow (esto no ocurre en las versiones más antiguas del sistema operativo). ¿Tienes alguna idea sobre esto?

Gracias

Esto se hace mediante una clase interna llamada DownloadReceiver y definida en el manifiesto del paquete com.android.providers.downloads

 <receiver android:name=".DownloadReceiver" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> <action android:name="android.intent.action.UID_REMOVED" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MEDIA_MOUNTED" /> <data android:scheme="file" /> </intent-filter> </receiver> 

Aquí la acción android.intent.action.UID_REMOVED llama la atención. Se introdujo en Lollipop activando una llamada a handleUidRemoved() realizando

 resolver.delete(ALL_DOWNLOADS_CONTENT_URI, Constants.UID + "=" + uid, null); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.