From fd7d3cb31b6bfc3958fe62c7285b0ac721b24ed6 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 27 Nov 2016 18:46:48 +0100 Subject: [PATCH] discover storage paths automatically --- .../android/medialibrary/MediaLibrary.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/ch/blinkenlights/android/medialibrary/MediaLibrary.java b/src/ch/blinkenlights/android/medialibrary/MediaLibrary.java index 581bfe6b..b6408f2f 100644 --- a/src/ch/blinkenlights/android/medialibrary/MediaLibrary.java +++ b/src/ch/blinkenlights/android/medialibrary/MediaLibrary.java @@ -22,6 +22,7 @@ import android.content.ContentValues; import android.database.Cursor; import android.database.ContentObserver; import android.provider.MediaStore; +import android.os.Environment; import java.util.ArrayList; import java.io.File; @@ -56,8 +57,9 @@ public class MediaLibrary { sBackend = new MediaLibraryBackend(context); sScanner = new MediaScanner(sBackend); - File dir = new File("/storage/emulated/0"); - sScanner.startScan(dir); + for (File dir : discoverMediaPaths()) { + sScanner.startScan(dir); + } } // } } @@ -284,6 +286,25 @@ public class MediaLibrary { return (hash < 0 ? hash*-1 : hash); } + /** + * Returns the guessed media paths for this device + * + * @return array with guessed directories + */ + public static File[] discoverMediaPaths() { + ArrayList scanTargets = new ArrayList(); + + // this should always exist + scanTargets.add(Environment.getExternalStorageDirectory()); + + // this *may* exist + File sdCard = new File("/storage/sdcard1"); + if (sdCard.isDirectory()) + scanTargets.add(sdCard); + + return scanTargets.toArray(new File[scanTargets.size()]); + } + // Columns of Song entries public interface SongColumns { /**