Perché voglio per assicurarsi che il MediaStore ha le informazioni più recenti senza dover riavviare vorrei innescare la MediaScanner utilizzando il modo popolare che ho trovato su SOCome attivare MediaScan su Nexus 7?
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
Questo funziona bene sul mio Samsung S2 w/ICS ma non sul mio Nexus 7 con JellyBean. Logcat mostra questo sul mio Nexus 7:
WARN/ActivityManager(480): Permission denied: checkComponentPermission() owningUid=10014
WARN/BroadcastQueue(480): Permission Denial: broadcasting Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///storage/emulated/0 flg=0x10 } from com.example.foo.bar (pid=17488, uid=10046) is not exported from uid 10014 due to receiver com.android.providers.downloads/.DownloadReceiver
INFO/ActivityManager(480): Start proc com.google.android.music:main for broadcast com.google.android.music/.store.MediaStoreImportService$Receiver: pid=17858 uid=10038 gids={50038, 3003, 1015, 1028}
INFO/MusicStore(17858): Database version: 50
INFO/MediaStoreImporter(17858): Update: incremental Added music: 0 Updated music: 0 Deleted music: 0 Created playlists: 0 Updated playlists: 0 Deleted playlists: 0 Inserted playlist items: 0 Deleted playlist items: 0 Removed orphaned playlist items: 0
L'ultima riga suona incoraggiante, in teoria, ma i valori sono sempre 0 anche dopo che i nuovi file erano stati spinti sulla scheda SD (via adb push). Sul mio dispositivo più vecchio (S2) rimonta la scheda SD.
ho aggiunto le seguenti autorizzazioni al mio AndroidManifest.xml ma si comporta lo stesso che senza quei permesso:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Tutte le idee/alternative?
Edit 1:
nota che io non conosco i percorsi dei file di file nuovi o modificati o cancellati. Voglio solo assicurarmi che il MediaStore sia aggiornato.
cosa questo ha a che fare con [la questione] (http://stackoverflow.com/questions/14346160/saving -files-on-external-storage-on-nexus-7-and-retrieving-from-pc) problema? –
Questo è abbastanza possibile. Grazie per il link. Vado a vedere se riesco ad accedere ad altri dispositivi per vedere se è solo Nexus 4/7. –
Non ho avuto alcun problema su Nexus 4 utilizzando [questa funzione per l'attivazione di un mediacan] (https://gist.github.com/danoz73/5061888) –