Browse Source

[new]增加文件存储相对路径

zk 5 months ago
parent
commit
c1559f0990

+ 28 - 0
app/src/main/java/com/datarecovery/master/utils/MediaStoreHelper.java

@@ -72,6 +72,7 @@ public class MediaStoreHelper {
 
         ContentValues mediaDetails = new ContentValues();
         mediaDetails.put(targetMedia.displayName(), fileName);
+        mediaDetails.put(MediaStore.MediaColumns.RELATIVE_PATH, targetMedia.relativePath());
 
         // lock media file until it's fully written.
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
@@ -205,6 +206,11 @@ public class MediaStoreHelper {
         }
 
         @Override
+        public String relativePath() {
+            return Environment.DIRECTORY_PICTURES;
+        }
+
+        @Override
         public File getExternalDir() {
             return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
         }
@@ -234,6 +240,11 @@ public class MediaStoreHelper {
         }
 
         @Override
+        public String relativePath() {
+            return Environment.DIRECTORY_MOVIES;
+        }
+
+        @Override
         public File getExternalDir() {
             return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES);
         }
@@ -263,6 +274,11 @@ public class MediaStoreHelper {
         }
 
         @Override
+        public String relativePath() {
+            return Environment.DIRECTORY_MUSIC;
+        }
+
+        @Override
         public File getExternalDir() {
             return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
         }
@@ -291,6 +307,11 @@ public class MediaStoreHelper {
         }
 
         @Override
+        public String relativePath() {
+            return Environment.DIRECTORY_DOCUMENTS;
+        }
+
+        @Override
         public File getExternalDir() {
             return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
         }
@@ -316,6 +337,11 @@ public class MediaStoreHelper {
         }
 
         @Override
+        public String relativePath() {
+            return Environment.DIRECTORY_DOWNLOADS;
+        }
+
+        @Override
         public File getExternalDir() {
             return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
         }
@@ -327,6 +353,8 @@ public class MediaStoreHelper {
         String displayName();
 
         String isPending();
+
+        String relativePath();
     }
 
     private interface MediaDir {