中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Android獲取內(nèi)置和外置SD卡路徑

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

本文將介紹android真機(jī)環(huán)境下如何獲取內(nèi)置和外置SD卡路徑。


測試環(huán)境:三星Note3,其他手機(jī)待測試。。。


所需權(quán)限(AndroidManifest.xml文件里)

    <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("內(nèi)置SD卡路徑:" + inPath + "\r\n");  
              
            List<String> extPaths = getExtSDCardPath();  
            for (String path : extPaths) {  
                log.append("外置SD卡路徑:" + path + "\r\n");  
            }  
            System.out.println(log.toString());  
        }  
          
        /** 
         * 獲取內(nèi)置SD卡路徑 
         * @return 
         */  
        public String getInnerSDCardPath() {    
            return Environment.getExternalStorageDirectory().getPath();    
        }  
      
        /** 
         * 獲取外置SD卡路徑 
         * @return  應(yīng)該就一條記錄或空 
         */  
        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")判斷部分有待進(jìn)一步驗(yàn)證!


打印結(jié)果:

1. 插入一張外置SD卡后

    內(nèi)置SD卡路徑:/storage/emulated/0  
    外置SD卡路徑:/storage/extSdCard  

2. 取出外置SD卡后
內(nèi)置SD卡路徑:/storage/emulated/0  

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

標(biāo)簽: 代碼 權(quán)限

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:PHP文件上傳示例

下一篇:SD卡相關(guān)的Android輔助類