2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > android获取内置和外置SD卡路径 - z

android获取内置和外置SD卡路径 - z

时间:2022-03-17 17:21:01

相关推荐

android获取内置和外置SD卡路径 - z

本文将介绍Android真机环境下如何获取内置和外置SD卡路径。

测试环境:三星Note3,其他手机待测试。。。

所需权限(AndroidManifest.xml文件里)

[html]view plaincopy <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

获取路径代码(MainActivity.java文件)

[java]view plaincopy packagecom.example.androidtest;importjava.io.BufferedReader;importjava.io.File;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.util.ArrayList;importjava.util.List;importandroid.os.Bundle;importandroid.os.Environment;importandroid.app.Activity;importandroid.view.Menu;publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);StringBuilderlog=newStringBuilder();StringinPath=getInnerSDCardPath();log.append("内置SD卡路径:"+inPath+"\r\n");List<String>extPaths=getExtSDCardPath();for(Stringpath:extPaths){log.append("外置SD卡路径:"+path+"\r\n");}System.out.println(log.toString());}/***获取内置SD卡路径*@return*/publicStringgetInnerSDCardPath(){returnEnvironment.getExternalStorageDirectory().getPath();}/***获取外置SD卡路径*@return应该就一条记录或空*/publicList<String>getExtSDCardPath(){List<String>lResult=newArrayList<String>();try{Runtimert=Runtime.getRuntime();Processproc=rt.exec("mount");InputStreamis=proc.getInputStream();InputStreamReaderisr=newInputStreamReader(is);BufferedReaderbr=newBufferedReader(isr);Stringline;while((line=br.readLine())!=null){if(line.contains("extSdCard")){String[]arr=line.split("");Stringpath=arr[1];Filefile=newFile(path);if(file.isDirectory()){lResult.add(path);}}}isr.close();}catch(Exceptione){}returnlResult;}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.activity_main,menu);returntrue;}}

其中,line.contains("extSdCard")判断部分有待进一步验证!

打印结果:

1. 插入一张外置SD卡后

[plain]view plaincopy 内置SD卡路径:/storage/emulated/0外置SD卡路径:/storage/extSdCard

2. 取出外置SD卡后

[plain]view plaincopy 内置SD卡路径:/storage/emulated/0

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。