android判断sd卡是否存在
⑴ android怎么判断sd卡是否挂载
android获取sd卡路径方法:
public String getSDPath(){
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(android.os.Environment.MEDIA_MOUNTED); //判断sd卡是否存在
if (sdCardExist)
{
sdDir = Environment.getExternalStorageDirectory();//获取跟目录
}
return sdDir.toString();
}
不建议直接写死android sd卡的路径。
Android中判断SD卡是否存在,并且可以进行写操作,可以使用如下代码
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
{
//TODO:
}
⑵ Android 获取外置存储卡,检查是否挂载
获取所有存储点:
根据路径来判断具体sd卡是否挂载:
测试用例:
⑶ android 判断一个文件是否存在
sd卡目录请不要直接使用/storage/sdcard0/,你这样试试
String SDPATH = Environment.getExternalStorageDirectory().getPath() + "//";
File f = new File(SDPATH +"/Manual/test.pdf")
另外你是不是忘记加权限了<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
⑷ android 判断sdcard是否存在,以及写入权限
/**
* 判断手机是否有SD卡。
*
* @return 有SD卡返回true,没有返回false。
*/
public static boolean hasSDCard() {
return Environment.MEDIA_MOUNTED.equals(Environment
.getExternalStorageState());
}
Android app开发过程中,有时需要获取sdcard路径,在该路径下进行文件访问操作
工具/原料
eclipse
android sdt
android手机
方法/步骤
启动eclipse,新建Android工程(具体创建方法,请参考笔者之前所写经验《如何建Android工程》);
找到res--》layout--》activity_main.xml,双击点开
从面板中拖两个button到界面上,分别命名:
getDIR(此button用于示范获取到的sdcard路径)
dir创建新文件夹(此button用于示范在sdcard路径下新建文件夹)
对button分辨绑定点击事件
//获取sdcard路径
public void getDIR(View v){
String sdpath = Environment.getExternalStorageDirectory().toString();
AlertDialog.Builder build = new Builder(this);
build.setMessage(sdpath).show();
}
//在手机sdcard路径下新建名为jingyan的文件夹
public void newPackage(View v){
String mkdir = Environment.getExternalStorageDirectory()+"/jingyan/test.txt";
File file = new File(mkdir);
AlertDialog.Builder build = new Builder(this);
if(file.exists()){
build.setMessage("文件夹已存在").show();
}else{
file.mkdirs();
build.setMessage("新建成功").show();
}
}
在【AndroidManifest.xml】配置文件中添加app对文件的操作权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
安装之后演示效果如下:
点击getDIR--》弹出sdcard路径
点击dir创建新文件夹--》
如果文件夹已存在,则提示“文件夹已存在”
反之,则提示"新建成功",同时在手机sdcard中可以找到新建成功的文件夹
⑸ 怎样查看android虚拟机是否有sdcard
android虚拟机,也就是人们说的模拟器吧(现在都基本用手机测试了),打开ddms,看我发的图:
代码中判断是否有sd卡:
Android中判断SD卡是否存在,并且可以进行写操作,可以使用如下代码
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED))
{
//存在
}
⑹ android判断是否有sd卡
本文实例讲述了Android编程判断SD卡是否存在及使用容量查询实现方法。分享给大家供大家参考,具体如下:
1.判断SD卡是否存在 返回true表示存在
/* 判断SD卡是否存在 返回true表示存在 */
public boolean avaiableMedia() {
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
}
2.获取SD卡可用空间
/* 获取SD卡可用空间 */
public long getSDFreeSize() {
// 取得SD卡文件路径
File path = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(path.getPath());
// 获取单个数据块的大小(Byte)
long blockSize = sf.getBlockSizeLong();
// 空闲的数据块的数量
long freeBlocks = sf.getAvailableBlocksLong();
// 返回SD卡空闲大小
// return freeBlocks * blockSize; //单位Byte
// return (freeBlocks * blockSize)/1024; //单位KB
return (freeBlocks * blockSize) / 1024 / 1024; // 单位MB
}
3.获取SD卡所有空间
/* 获取SD卡所有空间 */
public long getSDAllSize() {
// 取得SD卡文件路径
File path = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(path.getPath());
// 获取单个数据块的大小(Byte)
long blockSize = sf.getBlockSizeLong();
// 获取所有数据块数
long allBlocks = sf.getBlockCountLong();
// 返回SD卡大小
// return allBlocks * blockSize; //单位Byte
// return (allBlocks * blockSize)/1024; //单位KB
return (allBlocks * blockSize) / 1024 / 1024; // 单位MB
}
⑺ Android判断SD卡是否存在的实现
Android作为一个智能手机操作系统,SDK对SIM卡的读取有相关的操作,都封装在framework中
和SIM卡相关的类主要有以下几个:
IccConstants (里面记录很多的常量,主要用来存储某个字段在SIM卡上的位置是什么,比如ADN(sim卡上的电话本),6F3A, FDN(固定拔号 6F3B))IccCardStatus(记录SIM卡的状态,如ABSENT, READY,UNKNOW,ETC)
IccFileHandler(这个是用来SIM卡上的RECORD读完后,要处理什么事情)
IccRecords(SIM卡上的文件内容,每一个字段,一个RECORD)
IccProvider(手机上的数据库,读出来的数据全放这)
IccUtils(里面一般全是静态方法,主要用来码制转换)
IccSmsInterfaceManager,IccCard(这个是一个抽象类,会根据上面手机的制式,自动起一个SIMCARD 或者RUIMCARD)
以GSM为例说下读取的过程:
根据SIM卡的类型,进入SIMRecords, 开始探测SIM卡的状态,因为,有些SIM卡会设置有PIN码,如果SIM卡有PIN码的话,手机会弹出输入PIN码的框,等待用户进行解码,注意,这个时候,如果PIN码如果没有解的话,手机是不会去读SIM卡的,因为,读SIM卡时,必须通过PIN才能去读,只有一些比较特殊的字段,可以不用,比如ECC 也就是紧急呼叫号码(一般存在卡上,运营商定制的)。同时,这PIN码未解的情况,手机中SIM卡的状态也是PIN_REQURIED_BLOCK。
当解完PIN码,或是手机没有设置PIN码,这时,手机的会探测到SIM是READY的状态,手机只有检测到SIM READY,才会发出读卡的请求。
手机开始读卡第一个是IMSI(International Mobile SubscriberIdentification Number)主要用来查找运营商的网络,里面有MCC,MNC,ICCID(Integrate circuit card identity)唯一标识一个移动用户。
当低层的MODEM读到字段结果后,会有一个返回结果,由于发送读取请求时,有一个事件信息EVENT_GET_BINARY_SIZE_DONE,当有返回时,会直接交给IccFileHandler,然后由IccFileHandler转发给SIMRecords,最后进行处理该字段读完后应该执行的操作。