文档章节

登陆demo强化

A
 Angels_安杰
发布于 2015/10/08 00:19
字数 841
阅读 41
收藏 0

将数据保存到sd卡

知识点记录:(引用http://www.2cto.com/kf/201408/327215.html)

Android应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,
并且需要在AndroidManifest.xml文件中添加外部存储读和写的权限。
Environment类中提供了几个静态常量用于标识外部存储的状态,这些状态都是String类型
MEDIA_BAD_REMOVAL 在没有挂载前存储媒体已经被移除。
MEDIA_CHECKING 正在检查存储媒体。
MEDIA_MOUNTED 存储媒体已经挂载,并且挂载点可读/写。
MEDIA_MOUNTED_READ_ONLY 存储媒体已经挂载,挂载点只读。
MEDIA_NOFS 存储媒体是空白或是不支持的文件系统。
MEDIA_REMOVED 存储媒体被移除。
MEDIA_SHARED 存储媒体正在通过USB共享。
MEDIA_UNMOUNTABLE 存储媒体无法挂载。
MEDIA_UNMOUNTED 存储媒体没有挂载。
可以通过静态方法getExternalStorageState()来获取外部存储的状态,如果程序需要在外部存储里面读写数据,必须要先判断:

if(Environment.MEDIA_MOUNTED.equals(
Environment.getExternalStorageState()) 
|| !Environment.isExternalStorageRemovable())

然后,添加外部存储读和写的权限:



在Environment中还提供了Android标准目录的路径,以String类型提供。
DIRECTORY_ALARMS 系统提醒铃声存放的标准目录。
DIRECTORY_DCIM 相机拍摄照片和视频的标准目录。
DIRECTORY_DOWNLOADS 下载的标准目录。
DIRECTORY_MOVIES 电影存放的标准目录。
DIRECTORY_MUSIC 音乐存放的标准目录。
DIRECTORY_NOTIFICATIONS 系统通知铃声存放的标准目录。
DIRECTORY_PICTURES 图片存放的标准目录
DIRECTORY_PODCASTS 系统广播存放的标准目录。
DIRECTORY_RINGTONES 系统铃声存放的标准目录。

static File getDataDirectory() 获得data的目录(/data)。
static File getDownloadCacheDirectory() 获得下载缓存目录。(/cache)
static File getExternalStorageDirectory() 获得外部存储媒体目录。(/mnt/sdcard or /storage/sdcard0)
static File getRootDirectory() 获得系统主目录(/system)

除了用Environment获取存储目录之外,还可以通过把路径写死的方式,比如要读取外部存储/mnt/sdcard目录下的文件,可以在程序中直接用全路径,
但是这样做是很不好的,应该Android实在是太开放了,外部存储的目录的什么还是要固件制作商才知道,但是有一点是毋庸置疑的,就是Android框架层里面
已经是指定好了Environment.getDownloadCacheDirectory()的返回路径。所以,尽量用这种方式来获取和存储数据,以免固件厂商不同而造成路径的差异。

Android的实际开发中还用了两个非常重要的缓存目录,一个是应用程序自己的缓存空间,另一个是外部存储为该应该程序提供的缓存空间。有什么差别?
使用过LruCache和DisLruCache的童鞋应该知道。
这两个方法是通过上下文对象Context获取的,只要应用程序被卸载,这两个目录下的文件都要被清空。
context.getCacheDir() 获取应用程序自己的缓存目录
context.getExternalCacheDir() 获取应用程序在外部存储的存储目录

com.zaizai.demojava.util.Mapandroid.content.Context{


   (Context contextnumberpassword) {
      
      {
         state = .()(!..equals(state)) {
            }
         sdCardFile = .()file = File(sdCardFile)fos = FileOutputStream(file)data = number + + passwordfos.write(data.getBytes())fos.flush()fos.close()} (e) {
         e.printStackTrace()}
      }
   


   Map<> (Context context) {
      
      {

         state = .()(!..equals(state)) {
            }
         
         sdCardFile = .()file = File(sdCardFile)br = BufferedReader(InputStreamReader(FileInputStream(file)))text = br.readLine()br.close()(!.(text)) {
            Map<> userInfoMap = HashMap<>()[] split = text.split()userInfoMap.put(split[])userInfoMap.put(split[])userInfoMap}
      } (e) {
         e.printStackTrace()}
      }
}


© 著作权归作者所有

A
粉丝 5
博文 138
码字总数 105958
作品 0
广州
程序员
私信 提问
django-xadmin

django-xadmin是一个替代django admin的项目,使用了更加灵活的架构设计及Bootstrap UI框架. Xadmin 的功能特性: 兼容 Django Admin 使用 Bootstrap 作为 UI 框架 编辑页面灵活布局 主页面仪...

差沙
2013/05/17
22.3K
6
Java注册登陆学习笔记

import java.util.Scanner; //用户类 class Users { String username; String password; public Users(String username,String password) { this.username = username; this.password = pass......

知止内明
2017/11/18
0
0
shiro用authc配置url和用注解@RequiresAuthentication的问题

/index = authc /home/login = anon /home/tologin = anon /home/logout = anon /demo/** = user 针对在配置中加authc的url如果用户没登陆会让他跳转到登陆 如果我用注解@RequiresAuthentica......

开源中国首席脑科主任
2015/08/16
12.7K
3
可以在XP上自己开发自己的icloud客户来实现与iphone上的联系人,相片同步了

https://git.oschina.net/openCloud/icloud 官方网站:http://www.huluwa.org/ DEMO下载地址:http://www.huluwa.org/icloud/index.html 下载并安装好DEMO后,运行DEMO,在弹出的窗口中输入i...

RISK
2013/09/03
137
0
基于springboot springsecurity 的demo

https://github.com/Git-CodeTiger/SpringBootXDemo 欢迎拍砖 基于springboot mybatis的demo logback aop 统一异常处理 spring-security 如上四点都有涉及,这个demo就是为了学习上面那些kno...

磕磕绊绊学编程
2016/10/29
807
3

没有更多内容

加载失败,请刷新页面

加载更多

【0911】linux软件包安装和卸载

【0911】linux软件包安装和卸载 一、安装软件包的三种方法 1、rpm工具:与win中的exe安装包类似,红帽子公司包管理系统 2、yum工具:属于一种用python开发的工具,支持自动的安装依赖的包 3、...

飞翔的竹蜻蜓
20分钟前
3
0
【外行学IT】手机网页自适应之rem和viewport

在写手机网页时,对于像素的问题会非常困惑,初学者很多时候会因为那么一个小点的问题解决不了,或者无法理解透彻就放弃了学习。 我在学习写手机网页时也困惑了许久,出现过下面的问题: 图片...

前端老手
31分钟前
5
0
三、Java设计模式之单一职责原则

定义:不要存在多于一个导致类变更的原因。 一个类、接口、方法只负责一项职责 优点:降低类的复杂度、提高类的可读性,提高系统的可维护性、降低变更引起的风险

东风破2019
39分钟前
4
0
搭建高可用MongoDB集群(分片)

搭建高可用MongoDB集群(分片) KaliArch关注1人评论28269人阅读2017-12-04 21:57:41 MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423 MongoDB(replica set)请参考:https:/...

linjin200
58分钟前
6
0
Pandas DataFrame创建方法大全

Pandas是Python的数据分析利器,DataFrame是Pandas进行数据分析的基本结构,可以把DataFrame视为一个二维数据表,每一行都表示一个数据记录。本文将介绍创建Pandas DataFrame的6种方法。 创建...

汇智网教程
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部