加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android获取内置和外置SD卡路径

发布时间:2020-12-15 00:17:09 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" / 获取路径代码(MainActivity.java文件) package com.example.android

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />  

获取路径代码(MainActivity.java文件)
    package com.example.androidtest;  
      
    import java.io.BufferedReader;  
    import java.io.File;  
    import java.io.InputStream;  
    import java.io.InputStreamReader;  
    import java.util.ArrayList;  
    import java.util.List;  
      
    import android.os.Bundle;  
    import android.os.Environment;  
    import android.app.Activity;  
    import android.view.Menu;  
      
    public class MainActivity extends Activity {  
      
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
      
            StringBuilder log = new StringBuilder();  
            String inPath = getInnerSDCardPath();  
            log.append("内置SD卡路径:" + inPath + "rn");  
              
            List<String> extPaths = getExtSDCardPath();  
            for (String path : extPaths) {  
                log.append("外置SD卡路径:" + path + "rn");  
            }  
            System.out.println(log.toString());  
        }  
          
        /** 
         * 获取内置SD卡路径 
         * @return 
         */  
        public String getInnerSDCardPath() {    
            return Environment.getExternalStorageDirectory().getPath();    
        }  
      
        /** 
         * 获取外置SD卡路径 
         * @return  应该就一条记录或空 
         */  
        public List<String> getExtSDCardPath()  
        {  
            List<String> lResult = new ArrayList<String>();  
            try {  
                Runtime rt = Runtime.getRuntime();  
                Process proc = rt.exec("mount");  
                InputStream is = proc.getInputStream();  
                InputStreamReader isr = new InputStreamReader(is);  
                BufferedReader br = new BufferedReader(isr);  
                String line;  
                while ((line = br.readLine()) != null) {  
                    if (line.contains("extSdCard"))  
                    {  
                        String [] arr = line.split(" ");  
                        String path = arr[1];  
                        File file = new File(path);  
                        if (file.isDirectory())  
                        {  
                            lResult.add(path);  
                        }  
                    }  
                }  
                isr.close();  
            } catch (Exception e) {  
            }  
            return lResult;  
        }  
      
        @Override  
        public boolean onCreateOptionsMenu(Menu menu) {  
            // Inflate the menu; this adds items to the action bar if it is present.  
            getMenuInflater().inflate(R.menu.activity_main,menu);  
            return true;  
        }  
      
    }  

其中,line.contains("extSdCard")判断部分有待进一步验证!
    内置SD卡路径:/storage/emulated/0  
    外置SD卡路径:/storage/extSdCard  

2. 取出外置SD卡后
内置SD卡路径:/storage/emulated/0  

来自:http://blog.csdn.net/chadeltu/article/details/43736093

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读