`
ontheway_lyl
  • 浏览: 45145 次
社区版块
存档分类
最新评论

android内部外部存储卡路径的获取

阅读更多
很简单,就是获取外部、内部存储卡路径,不废话,具体详见代码及注释:

   public enum StorageType
    {
        ST_Rom_DataDir, // Android Rom 中data目录
        ST_Rom_AppDir, // Android Rom 中data下app可操作目录
        ST_SDCard_RootDir, // 最大的SD卡的根目录
    };

    public static File getStorageDirectory(StorageType st)
    {
        File f = null;

        if (st.equals(StorageType.ST_Rom_DataDir))
        {
            f = Environment.getDataDirectory();
        }
        else if (st.equals(StorageType.ST_Rom_AppDir))
        {
            f = XApplication.getAppContext().getFilesDir();
        }
        else if (st.equals(StorageType.ST_SDCard_RootDir))
        {
            String sysESDir = Environment.getExternalStorageDirectory().getAbsolutePath();
            String maxESDir = getMaxStorageDir();

            if (maxESDir.isEmpty() || sysESDir.equals(maxESDir))
            {
                f = Environment.getExternalStorageDirectory();
            }
            else
            {
                f = new File(maxESDir);
            }
        }

        return f;
    }

   /**
     * 判断手机是否有SD卡。
     * 
     * @return 有SD卡返回true,没有返回false。
     */
    public static boolean hasSDCard()
    {
        // return Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());
        if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
        {
            return true;
        }
        else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(Environment.getExternalStorageState()))
        {
            return false;
        }
        else
        {
            return false;
        }
    }

   /**
     * 获取图片的本地存储路径。
     * 
     * @return 图片的本地存储路径。
     */
    public static String getPath()
    {
        String path = "";
        // 没有sd卡存放到STRom_dataDir下
        if (!hasSDCard())
        {
            File f = getStorageDirectory(StorageType.ST_Rom_DataDir);
            path = f.getAbsolutePath();
        }
        else
        {
            File f = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
            if (!f.exists())
            {
                // 如果没有DCIM目录, 就放到sd卡
                f = Environment.getExternalStorageDirectory();
            }
            path = f.getPath() + "/" + "picture";
        }

        return path;
    }

    /**
     * 检查sdk权限,检查默认照片存储路径是否存在,不在则创建
     * 
     * @return
     */
    public static boolean checkPath()
    {
        String path = getPath();
        File file = new File(path);
        if (!file.exists())
        {
            file.mkdir();
        }
        if (path.lastIndexOf("picture") != -1)
        {
            return true;
        }
        return false;
    }
分享到:
评论

相关推荐

    Android 获取内外置存储卡

    本文将深入探讨如何在Android平台上获取内外置存储卡的相关信息,包括路径、判断其是否存在以及如何加载SD卡。 首先,我们要了解Android设备的存储结构。Android系统通常包含两种类型的存储:内部存储(Internal ...

    Android获取外置SD卡路径

    本文将详细讲解如何通过反射方式获取Android设备的外置SD卡路径。 首先,理解Android的存储结构至关重要。Android系统区分了内部存储(Internal Storage)和外部存储(External Storage)。内部存储通常用于存放...

    android 获取外置SD卡路径

    来获取内置SD卡的路径,但是每款定制过的android 系统的外置SD卡的路径都不一样,那我们怎么才能去获取这个路径呢,我们可以想其它的办法,我这里提供了一个类可以获取外置SD卡或内置SD卡的 label(名称),path(路径)...

    Android 获取OTG U盘路径 sdcard路径

    2. **获取外部存储路径**:一旦获取权限,可以使用`Environment`类提供的方法来获取内置SD卡(也称为内部存储)的路径。通常,`getExternalStorageDirectory()`返回的是公共外部存储(通常是内部SD卡)的根目录。 `...

    android 读取外置和内置存储卡路径和大小

    通过上述方法,你可以在Android应用中轻松读取内外部存储卡的路径和大小。在实际项目中,可以根据需求进行适当的封装和异常处理,以提供更稳定、健壮的存储管理功能。记得在使用这些代码之前,先测试它们在不同设备...

    Android TV USB路径或手机SDCARD路径获取

    对于SDCARD路径,Android提供了多种方法来获取内部和外部存储的路径。内部存储通常用于应用程序私有数据,而外部存储可以被多个应用共享。 1. 获取内部存储路径:内部存储路径通常用于存储应用的数据,如数据库、...

    Unity应用获取外置SD卡路径方法

    在Android 6.0(API级别23)及更高版本中,系统对存储访问进行了权限管理,因此获取外置SD卡路径前,需要确保在`AndroidManifest.xml`中添加了相应的权限: ```xml <uses-permission android:name="android....

    android 内部存储读写 sd卡存储

    #### 三、Android外部存储(SD卡存储) 外部存储指的是设备上的公共存储区域,如SD卡或内置存储的一部分,这部分存储空间对所有应用都是共享的。由于外部存储的特殊性,其使用方法与内部存储有所不同。 ##### 3.1 ...

    Android U盘读写 反射获取U盘路径

    Android设备通常有两种类型的存储:内部存储和外部存储。内部存储是设备自身的存储空间,而外部存储包括SD卡和通过OTG连接的U盘。在Android 6.0(API级别23)及更高版本,用户需要在运行时授予读写外部存储的权限(`...

    Android 获取内外SD卡路径几种方法总结

    在Android开发中,获取SD卡路径是常见的需求,尤其是在处理文件操作时。本文将总结两种在Android系统中获取内外SD卡路径的方法。 首先,我们来看第一种方法,这是较为简单直接的方式,通常适用于大部分场景: 1. *...

    Android私有储存文件和外部储存文件读写(适配6.0以上权限,不考虑SD卡)

    读写外部存储文件的方法与私有存储类似,只是路径不同。 最后,关于`WRFile`,这可能是你项目中的一个自定义文件操作类,用于封装上述的读写操作,具体实现要看源代码。如果你需要在项目中统一处理读写操作,创建...

    Android 通过反射调用获取内置存储和外置sd卡根路径(适用于各个版本)

    Android系统通常将存储分为两个主要部分:内部存储(Internal Storage)和外部存储(External Storage)。内部存储是设备自带的非易失性内存,通常用于应用程序的数据和用户配置。外部存储则包括可移除的SD卡以及...

    android通过反射获取内置存储、SD、OTG盘的路径,适合三方apk存储查看与文件管理

    尤其是对于内置存储、SD卡以及OTG(On-The-Go)外部存储设备的访问,往往需要特殊的方法。在标题和描述中提到,通过反射机制可以解决这个问题,实现对这些存储设备路径的获取以及空间信息的查询。接下来,我们将深入...

    Android单图路径获取(华为小米通用)

    例如,使用`Environment.getExternalStorageDirectory()`在低版本Android上可能无法获取到正确的外部存储路径,需要使用`ContextCompat.getExternalFilesDirs()`来获取各个存储分区。 8. **图片缩略图**: 在获取...

    Android打开手机相册获取图片路径

    在 Android 中,访问外部存储需要申请权限,包括读取和写入外部存储的权限。因此,需要在 AndroidManifest.xml 文件中添加以下权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /...

    Android中的内部存储和外部存储

    本文将深入探讨Android的内部存储和外部存储,以及它们的使用场景和注意事项。 首先,我们来看内部存储。Android的内部存储指的是每个应用都有自己独立的私有存储空间,只有该应用自身可以访问,其他应用无权读取或...

    获取SD卡 TF卡 内置 外置存储卡路径例子

    在Android系统中,获取SD卡或TF卡(外部存储卡)以及内置存储卡的路径是开发者经常遇到的任务,尤其在处理文件操作时。本示例提供了优化的方法,以提高读取速度,这对于处理大量数据或者频繁访问存储卡的应用至关...

    android手机外置SDcard(TF卡)获取方法

    Android系统将存储分为内部存储(Internal Storage)和外部存储(External Storage)。这里的"外部存储"并不特指SDcard,而是指除设备内置存储之外的所有可移除存储,包括物理上的TF卡和某些设备上的USB OTG存储。...

    获取SD卡路径及手机存储路径

    在Android系统中,获取SD卡路径以及手机内部存储路径是应用程序进行文件操作时常见的需求。以下将详细讲解如何在Android中实现这一功能。 首先,我们要理解Android设备的存储结构。Android设备通常有两种类型的存储...

    Android获取SDCard路径/Android获取存储器挂载点

    Android将存储分为内部存储(Internal Storage)和外部存储(External Storage)。内部存储通常用于应用私有的数据,而外部存储,也就是常说的SDCard,主要用于共享媒体文件和大型数据。在API 29及以上版本,Android...

Global site tag (gtag.js) - Google Analytics