Android編程實(shí)現(xiàn)識(shí)別與掛載U盤(pán)的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)識(shí)別與掛載U盤(pán)的方法。分享給大家供大家參考,具體如下:
關(guān)于U盤(pán)的掛載可以先看一下這篇文章《Android2.3實(shí)現(xiàn)SD卡與U盤(pán)自動(dòng)掛載的方法》,作者是將U盤(pán)直接掛載在SD卡下。我的機(jī)器是MTK6575的平臺(tái),支持sdcard和sdcard2,親測(cè)將U盤(pán)掛載到sdcard2下可以實(shí)現(xiàn)U盤(pán)識(shí)別,但這只是一個(gè)臨時(shí)解決辦法,因?yàn)樵谕瑫r(shí)插sdcard2和usb的情況下可能會(huì)有沖突,比如兩個(gè)設(shè)備相同目錄下存在同名文件的情況下只能識(shí)別一個(gè)。
要實(shí)現(xiàn)真正的U盤(pán)掛載需要修改幾個(gè)文件:
一、修改vold.fstab
添加一條dev_mount udisk /mnt/udisk auto /devices/platform/mt_usb/usb1
二、修改init.rc
1、在
# create mountpoints
下添加一條
mkdir /mnt/udisk 0076 system system
2、在
# Backwards Compat
下添加一條
symlink /mnt/udisk /udisk
三、修改storage_list.xml,此文件在frameworks/base/services/java/com/android/server/MountService.java的readStorageList方法里調(diào)用到。
private void readStorageList(Resources resources) {
mVolumes.clear();
mVolumeMap.clear();
int id = com.android.internal.R.xml.storage_list;
XmlResourceParser parser = resources.getXml(id);
AttributeSet attrs = Xml.asAttributeSet(parser);
//在這里會(huì)解析storage_list.xml,并將外置存儲(chǔ)間設(shè)備的路徑(如"mnt/sdcard")通過(guò)廣播的方式發(fā)給上層,上層收到廣播后就會(huì)根據(jù)路徑去掃描設(shè)備。
。。。
}
系統(tǒng)自帶的storage_list.xml在frameworks/base/core/res/res/xml目錄下,內(nèi)容如下
<StorageList xmlns:android="http://schemas.android.com/apk/res/android">
<!-- removable is not set in nosdcard product -->
<storage android:mountPoint="/mnt/sdcard"
android:storageDescription="@string/storage_sd_card"
android:removable="true"
android:primary="true" />
</StorageList>
第一次我在這個(gè)文件里加了一條
<storage android:mountPoint="/mnt/udisk" android:storageDescription="@string/storage_sd_card" android:removable="true" android:primary="false" />
重新編譯后測(cè)試無(wú)效,因?yàn)橛玫氖荕TK的平臺(tái)代碼所以storage_list.xml有可能被MTK的代碼覆蓋了,于是在源碼下搜索storage_list.xml,果然在以下目錄中找到了。
./mediatek/custom/{project name}/resource_overlay/generic/frameworks/base/core/res/res/xml/storage_list.xml
./mediatek/custom/{project name}/resource_overlay/generic_emmc/frameworks/base/core/res/res/xml/storage_list.xml
./mediatek/custom/{project name}/resource_overlay/generic_nand/frameworks/base/core/res/res/xml/storage_list.xml
為了保險(xiǎn)起見(jiàn)我在這三個(gè)文件里都加上了下面一句代碼
<storage android:mountPoint="/mnt/udisk"
android:storageDescription="@string/storage_usb"
android:removable="true"
android:primary="false" />
重新new以后測(cè)試可以識(shí)別U盤(pán)了,不同的平臺(tái)修改方式會(huì)存在一些差異,這里的方法僅供參考。
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Linux系統(tǒng)下如何掛載FAT32的U盤(pán)
- Linux下掛載硬盤(pán)分區(qū)的幾種方法
- Ubuntu設(shè)置開(kāi)機(jī)自動(dòng)掛載所有格式硬盤(pán)分區(qū)
- linux掛載新硬盤(pán)過(guò)程分享
- 實(shí)現(xiàn)批量linux格式化硬盤(pán)和掛載硬盤(pán)腳本分享
- 阿里云云服務(wù)器Linux系統(tǒng)掛載數(shù)據(jù)盤(pán)圖文教程
- Android2.3實(shí)現(xiàn)SD卡與U盤(pán)自動(dòng)掛載的方法
- linux通過(guò)掛載系統(tǒng)光盤(pán)搭建本地yum倉(cāng)庫(kù)的方法
- Linux mount掛載和卸載硬盤(pán)腳本分享
- 阿里云CentOS 7系統(tǒng)掛載SSD云盤(pán)的教程
相關(guān)文章
Android自定義View Material Design理念詳解
這篇文章主要為大家介紹了Android自定義View Material Design理念詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Android線程中設(shè)置控件的值提示報(bào)錯(cuò)的解決方法
這篇文章主要介紹了Android線程中設(shè)置控件的值提示報(bào)錯(cuò)的解決方法,實(shí)例分析了textview報(bào)錯(cuò)的原因以及Handler設(shè)置來(lái)解決錯(cuò)誤的實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-06-06
Android自定義滑動(dòng)刪除效果的實(shí)現(xiàn)代碼
這篇文章將從現(xiàn)有 Android 滑動(dòng)刪除的痛點(diǎn),到搭建好一個(gè)基本的框架,到最終提供一份完整的 Demo為止,爭(zhēng)取為讀者提供最大的可定制化,需要的朋友可以參考下2018-03-03
輕松實(shí)現(xiàn)Android仿淘寶地區(qū)選擇功能
這篇文章主要介紹了輕松實(shí)現(xiàn)Android仿淘寶地區(qū)選擇功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
Android 簡(jiǎn)易手勢(shì)密碼開(kāi)源庫(kù)詳解
本文主要介紹Android 簡(jiǎn)易手勢(shì)密碼,這里主要介紹手勢(shì)密碼如何實(shí)現(xiàn)及簡(jiǎn)單的示例代碼,有需要的同學(xué)可以參考下2016-08-08
Android評(píng)論功能的實(shí)現(xiàn)過(guò)程
這篇文章為大家詳細(xì)介紹了Android評(píng)論功能的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
Android實(shí)現(xiàn)好看的微信聊天氣泡效果
在聊天類應(yīng)用中,通常用氣泡作為聊天內(nèi)容的背景色,比如微信的聊天背景,別人發(fā)過(guò)來(lái)的是白色的氣泡,自己發(fā)的是綠色的氣泡。本文將用Android實(shí)現(xiàn)好看的微信聊天氣泡效果,感興趣的可以了解一下2022-06-06

