- 浏览: 926143 次
- 性别:
- 来自: 上海
最新评论
-
liu149339750:
我勒个去,搜到你的博客了,关注!
Android make脚本简记 -
ihopethatwell:
楼主,这个修改时间有个问题,退出修改界面就不保存设置的时间了, ...
Android中如何修改系统时间(应用程序获得系统权限) -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
flyar520:
你好...我也遇到屏幕半屏刷成黑屏的问题...但是我的时在开机 ...
Android横屏状态下返回到壁纸界面屏幕刷新问题 -
taowayi:
推荐android一键反编译神器 apkdec
Android apk反编译
android.os.Environment
提供访问环境变量
java.lang.Object
android.os.Environment
Environment 静态方法:
方法 : getDataDirectory ()
返回 : File
解释 : 返回Data的目录
方法 : getDownloadCacheDirectory ()
返回 : File
解释 : 返回下载缓冲区目录
方法 : getExternalStorageDirectory ()
返回 : File
解释 : 返回扩展存储区目录(SDCard)
方法 : getExternalStoragePublicDirectory (String type)
返回 : File
解释 : 返回一个高端的公用的外部存储器目录来摆放某些类型的文件(来自网上)
方法 : getRootDirectory ()
返回 : File
解释 : 返回Android的根目录
方法 : getExternalStorageState ()
返回 : String
解释 : 返回外部存储设备的当前状态
getExternalStorageState () 返回的状态String 类型常量 :
常量 : MEDIA_BAD_REMOVAL
值 : "bad_removal"
解释 : 在没有正确卸载SDCard之前移除了
常量 :MEDIA_CHECKING
值 : "checking"
解释 : 正在磁盘检查
常量 : MEDIA_MOUNTED
值 : "mounted"
解释 : 已经挂载并且拥有可读可写权限
常量 : MEDIA_MOUNTED_READ_ONLY
值 : "mounted_ro"
解释 : 已经挂载,但只拥有可读权限
常量 :MEDIA_NOFS
值 : "nofs"
解释 : 对象空白,或者文件系统不支持
常量 : MEDIA_REMOVED
值 : "removed"
解释 : 已经移除扩展设备
常量 : MEDIA_SHARED
值 : "shared"
解释 : 如果SDCard未挂载,并通过USB大容量存储共享
常量 : MEDIA_UNMOUNTABLE
值 : "unmountable"
解释 : 不可以挂载任何扩展设备
常量 : MEDIA_UNMOUNTED
值 : "unmounted"
解释 : 已经卸载
使用时只需先判断SDCard当前的状态然后取得SdCard的目录即可(见源代码)
1
//
SDcard 操作
2
public
void
SDCardTest() {
3
//
获取扩展SD卡设备状态
4
String sDStateString
=
android.os.Environment.getExternalStorageState();
5
6
//
拥有可读可写权限
7
if
(sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) {
8
9
try
{
10
11
//
获取扩展存储设备的文件目录
12
File SDFile
=
android.os.Environment
13
.getExternalStorageDirectory();
14
15
//
打开文件
16
File myFile
=
new
File(SDFile.getAbsolutePath()
17
+
File.separator
+
"
MyFile.txt
"
);
18
19
//
判断是否存在,不存在则创建
20
if
(
!
myFile.exists()) {
21
myFile.createNewFile();
22
}
23
24
//
写数据
25
String szOutText
=
"
Hello, World!
"
;
26
FileOutputStream outputStream
=
new
FileOutputStream(myFile);
27
outputStream.write(szOutText.getBytes());
28
outputStream.close();
29
30
}
catch
(Exception e) {
31
//
TODO: handle exception
32
}
//
end of try
33
34
}
//
end of if(MEDIA_MOUNTED)
35
//
拥有只读权限
36
else
if
(sDStateString
37
.endsWith(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) {
38
39
//
获取扩展存储设备的文件目录
40
File SDFile
=
android.os.Environment.getExternalStorageDirectory();
41
42
//
创建一个文件
43
File myFile
=
new
File(SDFile.getAbsolutePath()
+
File.separator
44
+
"
MyFile.txt
"
);
45
46
//
判断文件是否存在
47
if
(myFile.exists()) {
48
try
{
49
50
//
读数据
51
FileInputStream inputStream
=
new
FileInputStream(myFile);
52
byte
[] buffer
=
new
byte
[
1024
];
53
inputStream.read(buffer);
54
inputStream.close();
55
56
}
catch
(Exception e) {
57
//
TODO: handle exception
58
}
//
end of try
59
}
//
end of if(myFile)
60
}
//
end of if(MEDIA_MOUNTED_READ_ONLY)
61
}
//
end of func
计算SDCard的容量大小
android.os.StatFs
一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况
|
||
|
android.os.StatFs |
|
构造方法:
公用方法:
方法 : getAvailableBlocks ()
返回 : int
解释 :返回文件系统上剩下的可供程序使用的块
方法 : getBlockCount ()
返回 : int
解释 : 返回文件系统上总共的块
方法 : getBlockSize ()
返回 : int
解释 : 返回文件系统 一个块的大小单位byte
方法 : getFreeBlocks ()
返回 : int
解释 : 返回文件系统上剩余的所有块 包括预留的一般程序无法访问的
返回 : void
解释 : 执行一个由该对象所引用的文件系统雷斯塔特.(Google翻译)
想计算SDCard大小和使用情况时, 只需要得到SD卡总共拥有的Block数或是剩余没用的Block数,再乘以每个Block的大小就是相应的容量大小了单位byte.(见代码)
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/ -->
public void SDCardSizeTest() {
//取得SDCard当前的状态
String sDcString = android.os.Environment.getExternalStorageState();
if(sDcString.equals(android.os.Environment.MEDIA_MOUNTED)) {
//取得sdcard文件路径
File pathFile = android.os.Environment.getExternalStorageDirectory();
android.os.StatFs statfs = new android.os.StatFs(pathFile.getPath());
//获取SDCard上BLOCK总数
long nTotalBlocks = statfs.getBlockCount();
//获取SDCard上每个block的SIZE
long nBlocSize = statfs.getBlockSize();
//获取可供程序使用的Block的数量
long nAvailaBlock = statfs.getAvailableBlocks();
//获取剩下的所有Block的数量(包括预留的一般程序无法使用的块)
long nFreeBlock = statfs.getFreeBlocks();
//计算SDCard 总容量大小MB
long nSDTotalSize = nTotalBlocks * nBlocSize / 1024 / 1024;
//计算 SDCard 剩余大小MB
long nSDFreeSize = nAvailaBlock * nBlocSize / 1024 / 1024;
}//end of if
}//end of func
发表评论
-
Android JNI 编程常见小问题
2015-09-08 11:31 1227extern "C" { jint Jav ... -
Android ServiceManager注册自定义service
2015-08-19 09:53 4173当我们要使用android的系统服务时,一般都是使用Conte ... -
Android ALMP 架设web服务器配置
2014-10-08 18:48 1497随着信息时代的发展,智能手机已经越来越普及。下面本文将带大家把 ... -
Android UiAutomator 自动化测试
2014-07-04 17:39 10028一、一个BUG引发的问题 ... -
Android XP MTP支持
2014-03-18 16:41 2332家里电脑是win7,连上直接豌豆荚装驱动就好了。但单位的XP却 ... -
Android Launcher2 icon大小修改
2012-08-16 19:12 6065不同分辨率、不同屏幕的不同设备,android 原生的Laun ... -
android 浏览器APN切换
2012-04-16 16:42 2352业务需求:有些链接需 ... -
android 浏览器全屏显示
2012-04-16 16:40 4918业务需求:浏览器设置中支持全屏显示的功能。 分析:只需要在 ... -
Android MD5校验码的生成与算法实现
2012-03-05 15:05 20385在Java中,java.security.MessageDi ... -
Android View的xml属性
2012-02-27 13:25 2835java.lang.Object andro ... -
Android Gallery3D源码学习总结(三)——Cache缓存及数据处理流程
2011-12-29 11:04 4701第一,在应用程序中有三个线程存在:主线程(随activity的 ... -
Android Gallery3d源码学习总结(二)——绘制流程drawThumbnails
2011-12-29 11:02 2941此函数控制相册表格页 ... -
Android Gallery 3D 特效精华
2011-12-29 10:45 5337Android Gallery 3D 特效精华 一、布 ... -
Android Gallery3d源码学习总结(一)——绘制流程drawFocusItems
2011-12-29 10:42 2746显示单张图片相关的输入变量 int selecte ... -
Android:AppWidget,PendingIntent,RemoteViews用法
2011-11-25 10:09 5929什么是AppWidget?AppWidget就是我们平常在 ... -
Android软件汉化/精简/去广告教程
2011-08-23 12:32 2939前言: 现在随处都可以找到功能强大的汉化工具,操作简 ... -
Android ListView页眉页脚效果
2011-07-06 14:07 2684大家都知道,在我们调用ListView的addFooterVi ... -
Android 获取设备信息
2011-06-22 21:09 7971)android 获取设备型号、OS版本号: imp ... -
Android 应用安装设置
2011-05-31 16:18 1913应用程序的默认安装位置以及是否可移动取决于该程序的开发者的配置 ... -
Android Activity去除标题栏和状态栏
2011-05-31 13:10 40489一、在代码中设置 public void onCreate( ...
相关推荐
本篇将详细讲解如何在Android系统下,尤其是通过命令行来操作SDCard,而非依赖图形界面工具。 首先,理解Android中的外部存储分为两个部分:内部存储和外部存储。内部存储是设备自带的存储空间,通常用于存放应用...
Android SDCard 操作(文件读写、容量计算) Android SDCard 操作是指在 Android 系统中对 SD 卡的读写和容量计算操作。SD 卡是 Android 设备中的一种外部存储设备,用于存储数据、音乐、图片、视频等文件。 ...
### Android SDCard操作(文件读写,容量计算) #### 概述 本文将详细介绍如何在Android应用中进行SDCard的操作,包括文件的读写以及容量的计算等内容。通过掌握这些知识点,开发者能够更好地利用外部存储空间来提高...
android应用开发中关于SDCard读写操作的实例代码,在下载学习SDCard操作中,碰到很棘手的问题了。不过最后还在我的坚持下成功了,
### Android中SDCard的读写操作详解 #### 一、SDCard访问概述 在Android开发过程中,对于外部存储(如SDCard)的读写是非常常见的需求。本文将详细介绍如何在Android应用中对SDCard进行读写操作,包括获取缓存目录...
在Android开发过程中,对SDCard的操作是至关重要的,因为它是应用程序扩展存储空间的主要途径。本文主要探讨了如何在Android模拟器上创建和管理SDCard镜像文件,以及如何使用ADB工具进行文件的推送和拉取。 首先,...
### Android平台上SDCard的自动mount的解决方法 在Android设备中,SDCard(Secure Digital Card)作为外部存储介质被广泛使用。为了使Android系统能够自动识别并挂载SDCard,需要进行一系列配置与调试工作。本文将...
在Android平台上,对SDCard(外部存储)进行文件读写是常见的操作,尤其对于需要存储用户数据或资源的应用来说更是必不可少。本实例将探讨如何在Android应用中实现SdCard的读写功能。 首先,我们需要了解Android对...
本篇文章将详细探讨如何在Android应用中实现对外置SDCard的读取、创建、写入和删除操作。 首先,获取外置SDCard的路径是进行任何操作的第一步。在Android中,外置SDCard的路径通常是`/storage/emulated/0/`,但这并...
-avd android-G1 -sdcard C:\android_sdcard.img ``` 对于真实设备,可以通过ADB(Android Debug Bridge)工具将文件推送到SD卡中。例如,将文件`test.txt`推送到SD卡根目录下的命令如下: ``` adb push test.txt ...
本文将深入解析“Android应用源码SdCard读写文件实例”中的关键知识点,帮助开发者理解和实践Android系统中关于外部存储的API。 首先,Android为开发者提供了`java.io`和`android.os.Environment`两个主要的类来...
在Android平台上,对SDCard(外部存储)进行文件操作是应用程序与用户交互的重要部分,尤其对于需要存储大量数据或媒体文件的应用来说。本教程将详细解释如何在Android中读写SDCard文件,非常适合初学者入门。 首先...
本篇将详细介绍在Android 2.3及更高版本中,如何获取和操作Android设备的内存目录以及SDCard目录。 首先,我们要理解Android的存储架构。内部存储主要用于存储应用私有的数据,这些数据对其他应用是不可见的。而...
在Android系统中,与SD卡交互是常见的操作,特别是在存储用户数据或应用资源时。本文将深入探讨如何在Android中创建和删除SD卡上的文件夹,以及如何利用ListView和BaseAdapter来显示这些文件夹信息。 首先,让我们...
综上所述,"android显示sdcard上的图片"这一主题涵盖了Android系统中的文件访问、图片解析、内存管理、UI显示、异步处理等多个技术环节。通过熟练掌握这些知识点,开发者可以构建出高效且用户友好的图片显示功能。在...
在Android开发中,访问SDCard(外部存储)是常见的任务,因为这允许应用程序存储和读取大体积的数据,如图片、音频文件或用户数据。本文将深入探讨如何访问Android SDCard,并详细介绍如何根据需求自定义ListView。 ...
在Android系统中,外部存储...以上是关于Android SDCard读写的基本操作,实际开发中,根据具体需求,你可能还需要处理更多的边界情况和异常。在进行文件操作时,确保遵循最佳实践,以保证数据的安全性和应用的稳定性。
// SDCard可用,执行读写操作 } else if (Environment.getExternalStorageState().equals(Environment.MEDIA_REMOVED)) { // SDCard已移除,显示提示信息 } ``` #### 二、获取SDCard路径和基本信息 如果SDCard的...