最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android獲取內(nèi)外置存儲(chǔ)卡的方法

 更新時(shí)間:2017年04月06日 08:50:30   作者:雨點(diǎn)點(diǎn)  
這篇文章主要為大家詳細(xì)介紹了Android獲取內(nèi)外置存儲(chǔ)卡的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

以前的Android(4.1之前的版本)中,SDcard跟路徑通過(guò)“/sdcard”或者“/mnt/sdcard”來(lái)表示存儲(chǔ)卡,而在Jelly Bean系統(tǒng)中修改為了“/storage/sdcard0”,以后可能還會(huì)有多個(gè)SDcard的情況。

目前為了保持和之前代碼的兼容,sdcard路徑做了link映射。

為了使您的代碼更加健壯并且能夠兼容以后的Android版本和新的設(shè)備,請(qǐng)通過(guò)Environment.getExternalStorageDirectory().getPath()來(lái)獲取sdcard路徑,如果您需要往sdcard中保存特定類型的內(nèi)容,可以考慮使用Environment.getExternalStoragePublicDirectory(String type)函數(shù),該函數(shù)可以返回特定類型的目錄,目前支持如下類型:

DIRECTORY_ALARMS //警報(bào)的鈴聲
DIRECTORY_DCIM //相機(jī)拍攝的圖片和視頻保存的位置
DIRECTORY_DOWNLOADS //下載文件保存的位置
DIRECTORY_MOVIES //電影保存的位置, 比如 通過(guò)google play下載的電影
DIRECTORY_MUSIC //音樂(lè)保存的位置
DIRECTORY_NOTIFICATIONS //通知音保存的位置
DIRECTORY_PICTURES //下載的圖片保存的位置
DIRECTORY_PODCASTS //用于保存podcast(博客)的音頻文件
DIRECTORY_RINGTONES //保存鈴聲的位置

如果您的應(yīng)用需要下載以上類型的文件,則可以放到上面對(duì)應(yīng)的目錄中去來(lái)幫助用戶查找,比如最常用的就是下載文件了。如果您開(kāi)發(fā)了一個(gè)瀏覽器,在下載文件的時(shí)候把文件下載到Download目錄則方便用戶以后查找該文件,當(dāng)然如果你希望用戶需要通過(guò)啟動(dòng)您的程序來(lái)查看他們下載的文件,您也可以不這么做 ^_^。

在使用這些目錄保存文件的時(shí)候,需要注意一點(diǎn):其他程序也有可能在使用這些目錄,在保存文件前,注意判斷下文件是否已經(jīng)存在,不要覆蓋了用戶之前的數(shù)據(jù)。

Android4.1之后Android增加了多存儲(chǔ)卡的支持,一般手機(jī)會(huì)存在內(nèi)置存儲(chǔ)卡和外置存儲(chǔ)卡,也可能有多個(gè)外置存儲(chǔ)卡。如何獲取存儲(chǔ)卡路徑呢?

特別是各種android設(shè)備的存儲(chǔ)器路徑,是不一樣的,比如T卡路徑,可能是/mnt/sdcard、/mnt/extsd、/mnt/external_sd 或者/mnt/sdcard2。有時(shí)內(nèi)置存儲(chǔ)器的路徑也可能是/mnt/sdcard,而host usb存儲(chǔ)器的路徑也是各種各樣的。

下面方法是通過(guò)反射,調(diào)用StorageManager的隱藏接口getVolumePaths(),實(shí)現(xiàn)獲取存儲(chǔ)器列表。

package ckl.storage.list;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import android.app.Activity;
import android.os.storage.StorageManager;

public class StorageList {
private Activity mActivity;
private StorageManager mStorageManager;
private Method mMethodGetPaths;

public StorageList(Activity activity) {
mActivity = activity;
if (mActivity != null) {
mStorageManager = (StorageManager)mActivity
.getSystemService(Activity.STORAGE_SERVICE);
try {
mMethodGetPaths = mStorageManager.getClass()
.getMethod("getVolumePaths");
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}

public String[] getVolumePaths() {
String[] paths = null;
try {
paths = (String[]) mMethodGetPaths.invoke(mStorageManager);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return paths;
}
}

在android2.3中,判斷內(nèi)置SD卡是否掛載:

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
{
//為true的話,內(nèi)置sd卡存在
}

判斷外置SD卡是否掛載:

if(Environment.getStorageState(Environment.STORAGE_PATH_SD2).equals(Environment.MEDIA_MOUNTED))
{
//為true的話,外置sd卡存在
}

順帶描述怎么取得sdcard的空間大?。?/p>

File sdcardDir = Environment.getExternalStorageDirectory();
StatFs sf = new StatFs(sdcardDir.getPath()); 
//sdcardDir.getPath())值為/mnt/sdcard,想取外置sd卡大小的話,直接代入/mnt/sdcard2
long blockSize = sf.getBlockSize(); //總大小
long blockCount = sf.getBlockCount();
long availCount = sf.getAvailableBlocks(); //有效大小

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android Jetpack中Room的使用

    Android Jetpack中Room的使用

    這篇文章主要介紹了Android Jetpack中Room的使用,大家都知道Room主要分三個(gè)部分 database、dao和實(shí)體類entity,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • 詳解Android的自動(dòng)化構(gòu)建及發(fā)布

    詳解Android的自動(dòng)化構(gòu)建及發(fā)布

    本篇文章主要介紹了Android的自動(dòng)化構(gòu)建及發(fā)布,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Android讀取用戶號(hào)碼,手機(jī)串號(hào),SIM卡序列號(hào)的實(shí)現(xiàn)代碼

    Android讀取用戶號(hào)碼,手機(jī)串號(hào),SIM卡序列號(hào)的實(shí)現(xiàn)代碼

    以下是對(duì)Android讀取用戶號(hào)碼,手機(jī)串號(hào),SIM卡序列號(hào)的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-07-07
  • Andriod Studio實(shí)現(xiàn)保存QQ密碼功能(案例代碼詳解)

    Andriod Studio實(shí)現(xiàn)保存QQ密碼功能(案例代碼詳解)

    這篇文章主要介紹了Andriod Studio實(shí)現(xiàn)保存QQ密碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android Studio 引入 aidl 文件的方法匯總

    Android Studio 引入 aidl 文件的方法匯總

    本文給大家分享的是在Android Studio中引入AIDL文件常用的兩種方法,小伙伴們根據(jù)自己的情況自由選擇,希望對(duì)大家能夠有所幫助
    2017-11-11
  • Android本地存儲(chǔ)方法淺析介紹

    Android本地存儲(chǔ)方法淺析介紹

    這篇文章主要介紹了Android本地存儲(chǔ)案例,方法簡(jiǎn)單可以實(shí)現(xiàn)存儲(chǔ)并達(dá)到節(jié)省內(nèi)存的效果,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2022-10-10
  • Android 中ListView點(diǎn)擊Item無(wú)響應(yīng)問(wèn)題的解決辦法

    Android 中ListView點(diǎn)擊Item無(wú)響應(yīng)問(wèn)題的解決辦法

    如果listitem里面包括button或者checkbox等控件,默認(rèn)情況下listitem會(huì)失去焦點(diǎn),導(dǎo)致無(wú)法響應(yīng)item的事件,怎么解決呢?下面小編給大家分享下listview點(diǎn)擊item無(wú)響應(yīng)的解決辦法
    2016-12-12
  • Android開(kāi)發(fā)之sqlite3命令行簡(jiǎn)單使用方法

    Android開(kāi)發(fā)之sqlite3命令行簡(jiǎn)單使用方法

    這篇文章主要介紹了Android開(kāi)發(fā)之sqlite3命令行簡(jiǎn)單使用方法,分析了Android增刪改查等常用sqlite3的數(shù)據(jù)庫(kù)操作命令使用方法,需要的朋友可以參考下
    2016-02-02
  • android 網(wǎng)絡(luò)連接處理分析

    android 網(wǎng)絡(luò)連接處理分析

    在Android中,可以有多種方式來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)編程,本文將詳細(xì)介紹android 網(wǎng)絡(luò)連接處理,需要了解的朋友可以參考下
    2012-11-11
  • Android手機(jī)衛(wèi)士之設(shè)置密碼對(duì)話框

    Android手機(jī)衛(wèi)士之設(shè)置密碼對(duì)話框

    這篇文章主要為大家詳細(xì)介紹了Android手機(jī)衛(wèi)士之設(shè)置密碼對(duì)話框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論

察雅县| 柘城县| 会东县| 林口县| 石嘴山市| 福建省| 江川县| 屏南县| 龙南县| 科技| 运城市| 双桥区| 商南县| 石河子市| 泗水县| 南漳县| 苍山县| 滨州市| 漳浦县| 铁岭县| 左云县| 定日县| 东宁县| 镇沅| 浦北县| 山西省| 博乐市| 彭泽县| 海淀区| 静宁县| 邵武市| 青海省| 灵川县| 丰顺县| 澎湖县| 昆山市| 楚雄市| 北流市| 雷山县| 凤阳县| 上栗县|