diff options
Diffstat (limited to 'src/com/android/camera/SDCard.java')
-rw-r--r-- | src/com/android/camera/SDCard.java | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/com/android/camera/SDCard.java b/src/com/android/camera/SDCard.java index b88e32245..3d3ce6708 100644 --- a/src/com/android/camera/SDCard.java +++ b/src/com/android/camera/SDCard.java @@ -32,16 +32,20 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.os.Build; import android.os.Environment; import android.os.storage.StorageVolume; import android.os.storage.StorageManager; import android.util.Log; +import java.io.File; + public class SDCard { private static final String TAG = "SDCard"; private static final int VOLUME_SDCARD_INDEX = 1; + private Context mContext; private StorageManager mStorageManager = null; private StorageVolume mVolume = null; private String mPath = null; @@ -62,7 +66,17 @@ public class SDCard { return null; } if (mPath == null) { - mPath = mVolume.getPath() + "/DCIM/Camera"; + File[] dirs = mContext.getExternalFilesDirs(null); + if (dirs != null) { + String dir; + for (int i=0; i<dirs.length; i++) { + dir = dirs[i].getAbsolutePath(); + if (dir.startsWith(mVolume.getPath())) { + mPath = dir; + break; + } + } + } } return mPath; } @@ -93,6 +107,7 @@ public class SDCard { private SDCard(Context context) { try { + mContext = context; mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); initVolume(); registerMediaBroadcastreceiver(context); |