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

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 获取外置SD卡路径

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

    Android 获取内外置存储卡

    android 获取外置内存卡android获取sdcard内存路径android判断外置sd卡是否存在Android 获取内外置存储卡方法

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

    Unity程序获取外置SD卡路径方法,包内包含PicoVR SDK,场景安装打包在手机上,可以看到分屏反畸变效果。

    Android文件存储:内部存储,外部存储及其路径

    Android系统数据存储分为内部存储和外部存储,内部存储是手机系统自带的存储,一般空间都不大,外部存储一般是SD卡的存储,空间一般都比较大。一般我们会把存储内容放在外部存储空间里。在使用过程需要注意事项: 先...

    Android获得内/外置存储卡路径的方法

    我们知道Android上一般都有外置的存储卡, 但是通过Environment.getExternalStorageDirectory()获取的是内置的存储卡位置 (也有的手机可以在系统中修改默认存储) 那么如何获取外置存储卡的位置呢? 我们可以通过...

    【Android-数据存储】外部存储(存储在SD卡上)

    外部存储 sharedpreferences:link. 本文主要介绍外部存储的相关知识。 存储路径:/storage/emulated/0 ———————————————————————————————————————— 1、向SD卡写数据 步骤:...

    android 获取存储器列表 并创建文件读写

    Android studio 亲测,华为手机,开发板都可以, 调用方法获取存储器列表list(包括SD卡的路径),获取之后把程序改成自己想访问的存储器,注:需要手动改一下路径

    Android-存储路径与管理应用文件存储方法汇总

     Android手机存储分为两个部分:内部存储和外部存储,内部存储一般是手机自带的存储空间,外部存储指外插SD卡提供的存储空间;随着手机发展,这两个存储的定义又有了一些些变化,新的手机不再有外插SD卡的概念,...

    在android studio中用SQLiteOpenHelper()方法建立数据库

    外部存储——SD卡 资源文件——只读( RAW 、XML) (3)数据库存储——SQLiteDataBase 今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenHelper中需要重载函数: ...

    Android开发人员不得不收集的代码

    getAndroidID : 获取设备 AndroidID getMacAddress : 获取设备 MAC 地址 getManufacturer : 获取设备厂商 getModel : 获取设备型号 shutdown : 关机 reboot : 重启 reboot2Recovery : 重启到 recovery reboot2...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    超级备份 Super Backup Pro 2.2.80 中文多语免费版.zip

    如果您的电话具有内置存储,则默认备份位置可能是内部存储卡,而不是外部存储卡。这是因为电话以这种方式报告存储。如果要在手机上恢复出厂设置,请在执行操作之前确保默认备份文件夹位于外部SD卡中。如果没有,请...

    深入理解Android:卷I--详细书签版

     第9章分析了Vold和Rild,其中Vold负责Android平台中外部存储设备的管理,而Rild负责与射频通信有关的工作。本章的拓展思考部分介绍了嵌入式系统中与存储有关的知识,还探讨了 Rild和Phone设计优化方面的问题。 ...

    详解Android文件存储

    根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念。 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对...

    Super Backup Pro 2.2.56.apk

    如果您的手机具有内置存储,则默认备份位置可能是内部存储卡,而不是外部存储卡。这是因为手机以这种方式报告存储。如果您打算在手机上恢复出厂设置,请在执行此操作之前确保默认备份文件夹位于外部SD卡中。如果没有...

    adb工具包刷机工具

    用于安卓手自我的一个好友偷摸搬运过来、刷机精灵、甜辣椒什么的有时对机型支持并不是那么完善的、关键...sdcard sd卡分区(外部储存) data data分区(外部储存) system 系统分区 cache 缓存分区 机与电脑操控

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android 根据uri获取路径 |--android 模拟器错误 |--android 横竖屏切换 |--android 获取mac地址 |--android 获取sd卡状态 |--android 设置apn |--android 调节屏幕亮度 |--android 资源uri |--android 还原短信 ...

    基于Android如何实现将数据库保存到SD卡

    有时候为了需要,会将数据库保存到外部存储或者SD卡中(对于这种情况可以通过加密数据来避免数据被破解),比如一个应用支持多个数据,每个数据都需要有一个对应的数据库,并且数据库中的信息量特别大时,这显然更...

    安卓重复文件搜索工具 Search Duplicate File 4.96 中文免费版.zip

    支持内部存储,外部SD卡,OTG存储,安装点。 Android Kitkat有对外部SD卡的访问限制,请参阅下面的“已知问题”。 在“设置 – 常规”中指定文件类型|扩展|大小。 预览|定位|共享|保存图像,音频,视频或应用程序,...

Global site tag (gtag.js) - Google Analytics