展开

关键词

Android 存储选择方法

,这里的zhuwentao.com.pathdemo会根据你的应用程序包名不同会有差别,存在这个,主要有以下几个好处一:该是在SD中,所以不用担心手机内置存储空间不足,只要SD够大就行。 我们在选择存储的时候,还要考虑到用户的手机是否有SD,再进行选择,通过以下代码判断用户是否有SD: ** * 获取手机可存储 * @param context 上下文 * @return 手机可存储 或者SD不可被移除的时候则获取SD下的,没有则获取应用程序缓存。 Android就把内置的内存分一部分出来当作SD使用了,导致不同版本的Android系统获取到的SD会存在差异。 需要注意的是,各个手机厂商的SD也是会存在差异的,有些手机获取到的是“mntsdcard…”,而有的获取的是“storagesdcard0…”所以绝对不能写死SD

17510

Android开发笔记(三十二)文件基础操作

File类 File类是java中的文件操作工具类,它的常用方法如下: File构造函数 : 根据文件构造File对象 delete : 删除文件 exists : 判断文件是否存在 getName : 获取文件的文件名 getPath : 获取文件的目录 getParent : 获取上级目录 isDirectory : 判断是否为目录文件夹 isFile : 判断是否为文件 length )的 getExternalStoragePublicDirectory : 获得外部存储指定类型目录的DIRECTORY_DCIM : 相片存放目录(包括相机拍摄的图片和视频)DIRECTORY_DOCUMENTS 但现在很多手机既支持自带SD,也支持外插SD,所以该方法不能用来鉴别系统有没有外插SDSD操作 app操作SD时需增加如下处理: 1、在AndroidManifest.xml中增加SD的权限配置 2、代码中操作SD需要先判断当前SD是否已挂载。

58010
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3.数据存储

    :相当于电脑的移动硬盘 * 2.2之前,sd:sdcard * 4.3之前,sd:mntsdcard * 4.3开始,sd:storagesdcard* 所有存储设备,都会被划分成若干个区块 datadatacom.itheima.apirwinromfiles File file = new File(getFilesDir(), info.txt); 返回值也是一个File对象,其是 在外部存储数据:sd对sdcard进行读取;   基本的状态:     MEDIA_UNKNOW:不能够进行识别该sd     MEDIA_REMOVE:没有该sd     MEDIA_UNMOUNTED sdcardinfo.txt);写sd需要权限 读sd,在4.0之前不需要权限,4.0之后可以设置为需要 使用api获得sd的真实,部分手机品牌会更改sd判断sd是否准备就绪 if( Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 返回一个File对象,其sd的真实 File

    44570

    Arcgis For Android之离线地图实现的几种方式

    一般来说,我们都是将Server的切片文件或者tpk文件复制到自己手机的SD上面。下面以我的手机为例说一下文件。 小编没什么钱,买了一个华为的C8813Q的电信机器,正常来说,安卓的手机都是有运存,内存,和外存(SD存储)。 中,不支持SD的手机就只能放在内存了。 如果既有内存,又支持SD,一般内存的为:file:storagesdcard0,SD为file:storagesdcard1,没有SD为:file:storagesdcard。 有了离线地图文件,将文件拷贝到手机SD中,我的文件如下:?在SD的根目录下建了一个文件夹arcgis,将切片文件拷贝到了该目录下面。

    87430

    Recovery下找不到sdcard

    做升级的时候,把更新包拷贝到sd中,然后调用接口进行重启升级File update_file = new File(sdcardupdate.zip);try { Log.d(WOW, install 因为上层用Java写的时候,获取的是Android的,我们知道,adb shell里面是有sdcard的的,这个实际上并不是插入的SD,而是一个内置。 内置通过 ls -l 可以看到 sdcard 的映射lrwxrwxrwx 1 root root 21 1970-01-01 08:00 sdcard -> storageselfprimary也就是说下面几个是一样的 sdcardstorageemulated0storageselfprimary 而外置sd是storage0658-0900 所以,我们代码里写的是sdcard但是传到Recovery的就变成 实际要做的就是把获得到的里面storageemulated0替换成sdcard即可: Recovery里面的sd就是sdcard if (update_package) { For backwards

    68610

    3-SII--Android的SD文件读写

    零、前言 读写SD需要运行时权限。 如果对运行时权限不清楚的童鞋,可以看一下我的封装:TI--安卓运行时权限完美封装 一、使用:SD文件读写FileHelper fileHelper = FileHelper.get();在SD追加模式创建 ** * 判断是否存在SD * * @return 是否存在SD * private boolean hasSdCard() { return Environment.getExternalStorageState () .equals(Environment.MEDIA_MOUNTED); }在SD中创建文件 ** * 在SD中创建文件的核心代码 * * @param savePath 保存的绝对(不存在会自动创建上级文件夹 (filename, , false); }----三、读取文件 ** * 在SD中读取文件 * * @param filename 文件名 * @return 文件内容 * private String

    38920

    FileProvider无法获取外置SD问题解决方案 | Failed to find configured root that contains

    它对应Context.getFilesDir返回的:eg:”datadatacom.jph.simplefiles”。 该方式提供在应用的内部存储区的缓存子目录的文件。 它对应getCacheDir返回的:eg:“datadatacom.jph.simplecache”; 该方式提供在外部存储区域根目录下的文件。 它对应Context#getExternalFilesDir(String) Context.getExternalFilesDir(null)返回的。 ()获取一个外置SD的Uri则会报出如下异常:? FileProvider获取对外置SD的支持从Android官方文档中没有找到FileProvider对外置SD的支持的任何说明,下面我们就从FileProvider的源码中找找是否有突破口,在FileProvider

    88580

    【STM32H7教程】第88章 STM32H7的SDMMC总线应用之SD移植FatFs文件系统

    88.3 SD基础知识这里将SD相关的基础知识为大家做个普及。88.3.1 SD分类根据不同容量做的区分,主要包括Full SD,miniSD和microSD。? 88.3.3 SD总线速度和速度等级SD速度:?SD速度等级:? SD驱动文件bsp_sdio_sd.c和bsp_sdio_sd.h添加到自己的工程里面,不限。配套例子是放在Userbspsrc和Userbspinc文件。 88.7.3 第3步,添加工程当前需要添加的两个FatFs,大家根据自己添加的源文件位置,添加相关即可:? 代码如下:char DiskPath; * SD逻辑驱动,比盘符0,就是0: ** 注册SD驱动 *FATFS_LinkDriver(&SD_Driver, DiskPath);88.8.2 SD

    46720

    SD拷贝UI资源到QSPI Flash文件系统(仿串口终端显示拷贝过程)

    这次我将STemWin给集成了进来,在这个例程中使用了多行文本控件,做了一个终端可显示从SD将BMP格式的图片资源拷贝到QSPI FLASH文件系统的过程,图片数据如下,事先已经将其拷贝到SD的根目录中 1、软件功能简介1.1、插入SD上电当插入SD开机时,程序会自动的将SD根目录下的.bmp文件依次拷贝到QSPI FLASH的文件系统上,这里就会调用UI拷贝函数,拷贝的过程会通过LCD以多行文本的形式显示出来 ); HAL_Delay(500); } } } f_closedir(&dir); } return res;} 复制文件** * @brief 复制文件 * @param src_path:源文件 n); return -1 ; } 获取子文件 sub_dir = strrchr(src_path, ); if(NULL == sub_dir) { printf(获取子文件失败! n); return -2 ; } 拼接成新 sprintf(newfn, %s%s, dst_path, sub_dir); printf(正在复制文件 %s ..., newfn); sprintf

    16220

    Android开发笔记(七十九)资源与权限校验

    一般情况下,前置摄像头、部分传感器在低端手机上是没有的,像SD也可能因为用户没插使得找不到SD资源。 下面是校验这些硬件设备的说明: SD Android4.0之后增加了多存储的支持,故一般手机有内置存储和外置存储(即SD),其中外置存储便是可选的。 获取各个存储的磁盘,可通过系统服务STORAGE_SERVICE构造StorageManager对象,再使用反射机制调用getVolumePaths内部方法获得。 磁盘符合Environment.getExternalStorageDirectory().getPath()的,就是默认的内置存储,否则就是外置存储

    21220

    笔记——安卓存储知识(十)

    《个人平时笔记,看到的同学欢迎指正错误》1、存储相关详解知识安卓起初早年是有内置SD和可扩展插拔TF区分的,但是近年手机内置SD的高内存导致越来越少的手机支持TF(外置SD)扩展了。 私有目录就是Android这个文件夹下的。 从用户角度来说SD有内置SD和外置TF之分,通过Environment或者Context获取的都是手机自带的内置SD,类似storageemulated0加后缀。 sd.png如果按照的特征,我们又可以将文件存储的分为两大类,一类是中含有包名的,一类是中不含有包名的,含有包名的,因为和某个App有关,所以对这些文件夹的访问都是调用Context sdw.png ** * 获取外置TFstoragesdcard1或storage0F1C-240A等 * * @param mContext * @return * public static

    22930

    Android文件存储使用

    Android文件存储参考 思维导图可能遇到的问题 android系统自身自带有存储,另外也可以通过sd来扩充存储空间。前者好比pc中的硬盘,后者好移动硬盘。 开发应用,处理本地数据存取时,可能会遇到这些问题: 需要判断sd是否可用: 占用过多机身内部存储,容易招致用户反感,优先将数据存放于sd;应用数据存放,同其他应用应该保持一致,应用卸载时,清除数据 : 2.1 标新立异在sd根目录建一个目录,招致用户反感 2.2 用户卸载应用后,残留目录或者数据在用户机器上,招致用户反感需要判断两者的可用空间: sd存在时,可用空间反而小于机身内部存储,这时应该选用机身存储 各个的特性 下面介绍这些的特性以及使用中需要注意的细节: 根目录( $rootDir ): 内部存储: data , 通过 Environment.getDataDirectory() 获取外部存储 特别注意, 对于外部存储,获取 $cacheDir 或者 $filesDir 及其下的 * 在API level 8 以下,或者空间不足,相关的方法获为空时,需要自己构造。

    74630

    Android 6.0上sdcard和U盘获取和区分方法

    Android6.0上会根据的种类和的挂载状态来动态生成挂载,所以之前写固定的办法不可用,最后通过网上查找和分析android源码,通过反射获取到,并且进行了正确区分,代码如下:** * 6.0获取外置sdcard和U盘,并区分 * @param mContext * @param keyword SD = 内部存储; EXT = SD; USB = U盘 * @return *

    26210

    android 仿qq手写板涂鸦

    是否存在  检查SD是否可用 if (! , Toast.LENGTH_SHORT).show();   break;                      }   获取系统图片存储                     File path Calendar.HOUR_OF_DAY) + c.get(Calendar.MINUTE) + c.get(Calendar.SECOND)                               + .png;   合成完整 是否存在  检查SD是否可用 if (! , Toast.LENGTH_SHORT).show();   break;                      }   获取系统图片存储                     File path

    47560

    保存文件到手机内存

    私有目录的可以通过 Context->getFilesDir() 来获取。除了私有存储区域以外,SD 上都是公共区域,所有人可读写。 SD 这种功能禁止掉。 相当于 Google 出手对 SD 目录结构进行了规范。之前 android 不限制目录,所以各种应用就随意的在 SD 上建一个目录。然后 SD 上的目录到处都是,用户对这种现象早就深恶痛绝了! 文件部分,如果按照上面所写,灵活性很差。当我改变包名的时候,程序会报错,R文件要从新导一下,并且android会认为是个新的应用。 上下文就是一个类提供了方便的api可以得到应有程序的环境,可以获取包名,文件,资源,资产等9.

    37040

    Android文件各种存储的比较

    1、File cacheDir = context.getCacheDir();应用内部存储空间(数据文件私有)文件存储到这个下,不需要申请权限,当应用被卸载的时候,目录下的文件会被删除。 需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对也是变化的,所以建议当数据存储到这个目录的时候,用相对。 需要注意的是,这个文件的目录和应用的存储位置有关, 当应用被移动到外部存储设备的时候,文件的绝对也是变化的,所以建议当数据存储到这个目录的时候,用相对 系统提供的访问此文件的方法是:context.openFileOutput ,现在绝大多数的手机,都不用外挂物理SD了)的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD)则不会自动删除该目录,及目录下的文件。 )的时候, 才可以在卸载应用的同时,自动删除该目录下的文件,如果是之前的物理存储(物理SD)则不会自动删除该目录,及目录下的文件 在使用的时候,需要判断外部存储的挂载状态(getExternalStorageState

    1.1K10

    Android手机管理工具类详解

    getPhoneNum : 获取手机号 isSDCardMount : 判断sd是否挂载 getSDFreeSize : 获取sd剩余空间的大小 getSDAllSize : 获取sd空间的总大小 )) {return true;} else {return false;}}*** 获取sd剩余空间的大小*@SuppressWarnings(deprecation)public long getSDFreeSize () {File path = Environment.getExternalStorageDirectory(); 取得SD文件StatFs sf = new StatFs(path.getPath 空闲大小return (freeBlocks * blockSize) 1024 1024; 单位MB}*** 获取sd空间的总大小*@SuppressWarnings(deprecation )public long getSDAllSize() {File path = Environment.getExternalStorageDirectory(); 取得SD文件StatFs

    19141

    Android N获取外置SD或挂载U盘的方法

    在Android N上并没有提供直接的方法获取外置SD或挂载U盘,可以通过下面方法获取内置sdEnvironment.getExternalStorageDirectory().getAbsolutePath File getExternalStorageDirectory() { throwIfUserRequired(); return sCurrentUser.getExternalDirs(); }内置sd 取的sCurrentUser.getExternalDirs()中的第一个值,通过查看StorageManager公有的方法,发下StorageManager@getStorageVolumes也能获取到所有的

    71120

    安卓开发之文件操作

    MODE_WORLD_WRITEABLE:该文件的内容可由其他程序读写getDir(String name,int mode):获取或者创建对应的子目录File getFilesDir():获取应用程序的数据文件夹的绝对 buff, 0, hasRead));}return sb.toString();} catch (Exception e) {e.printStackTrace();}return null;}四、SD 文件操作SD文件读写步骤先判断手机上是否有SD,并该应用程序具有读写SD权限获取SD目录(Environment的getExternalStroageDirectory()方法)使用FileInputStream 和FileOutputStream、FileReader、FileWriter读写SD文件注意要点:插入SD配置应用程序读写权限

    37780

    保存文件到SD

    Android本身提供了datadatacom.companyname.appname这个供广大app存放configuration以及user data之类的东西,为什么很多App要把配置文件甚至 祈雨蓝:没有限制 另外对应着 SD上也有一个文件夹 Androiddata包名,这个文件夹也是用来给程序放应用数据的,此文件夹读写在4.4及以后不需要外置储存区读写权限。 不需要权限,有很大的安全隐患,4.0以后的有权限,在设置里面开发者选项,对sd进行读写保护。 比较,sd挂载,Environment.getExternalStorageDirectory()可以得到sd业务类修改:package com.tsh.savefile.service; import Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ Toast.makeText(context, sd不可用

    1.2K20

    相关产品

    • SD-WAN 接入服务

      SD-WAN 接入服务

      SD-WAN 接入服务(SD-WAN Access Service)助力多分支轻松实现与云、数据中心的任意互联,具有即插即用、全球覆盖、智能管控等特性,为企业多分支提供更简单、可靠、智能的一站式的上云体验。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券