一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android2.3實現SD卡與U盤自動掛載的方法

Android2.3實現SD卡與U盤自動掛載的方法

2021-05-31 16:06yimiyangguang1314 Android

這篇文章主要介紹了Android2.3實現SD卡與U盤自動掛載的方法,較為詳細的分析了Android2.3實現SD卡與U盤自動掛載的具體步驟與相關技巧,需要的朋友可以參考下

本文實例講述了Android2.3實現SD卡與U盤自動掛載的方法。分享給大家供大家參考,具體如下:

在 s3c6410平臺上移植android2.3 過程中SD卡總是不能自動掛載。 查閱相關資料,知道在android2.3中是 vold程序負責檢查內核的 sysfs 文件系統,發現有SD卡插入后,自動掛載。 在文件系統目錄 /system/etc/  下有一個vold.fstab 文件,該文件是系統與用戶硬件平臺的交互接口,用戶根據自己的平臺來配置這個文件,里面內容比較簡單,只需要你指定sys下vold程序需要查詢的文件夾路徑,當SD卡插入設備后,這個路徑下會產生相應的文件,vold能檢查到。

我的vold.fstab文件內容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
## Vold 2.0 fstab for OK6410
##
#######################
## Regular device mount
##
## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
## label    - Label for the volume
## mount_point - Where the volume will be mounted
## part     - Partition # (1 based), or 'auto' for first usable partition.
## <sysfs_path> - List of sysfs paths to source devices
######################
# Mounts the first usable partition of the specified device
dev_mount sdcard /mnt/sdcard auto /devices/platform/goldfish_mmc.0 /devices/platform/s3c-sdhci.0/mmc_host/mmc0

上面都是注釋,幫助,最關鍵的是最后一句,其中 auto 代表掛載SD卡的第一個分區,后面是vold監測的路徑,當插入sd時,/devices/platform/s3c-sdhci.0/mmc_host/mmc0 路徑下會多出一個文件夾,請確認你的硬件平臺相應的路徑。

最后說一下除了配置這個文件外需要關注的地方:

1 如果你把sd卡插入開發板上,在 /dev/block/ 目錄下面多出幾個設備節點,證明sd卡的驅動成功加載, 我的目錄下面會形成 mmcblk0  和 mmcblk0p1 節點,注意:這兩個節點的意思,mmcblk0代表第一個sd卡設備,mmcblk0p1代表第一個SD卡設備的第一個分區。用戶不能把/dev/block/mmcblk0掛載到文件系統中,而是把這個SD卡的分區掛載到文件系統中,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
# mount -t vfat /dev/block/mmcblk0   /sdcard/
<3>FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem wil
l be case sensitive!
FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will b
e case sensitive!
<7>mmc0: starting CMD17 arg 00000000 flags 000000b5
<7>mmc0:   blksz 512 blocks 1 flags 00000200 tsac 100 ms nsac 0
<7>sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000001
<7>sdhci [sdhci_irq()]: *** mmc0 got interrupt: 0x00000002
<7>mmc0: req done (CMD17): 0: 00000900 00000000 00000000 00000000
<7>mmc0:   512 bytes transferred: 0
mount: Invalid argument

掛載 mmcblk0  會出現這樣的錯誤提示,而掛載 mmcblk0p1 會成功,當然在android下面不應該手動掛載,否則在上層應用軟件中會出現找不到SD卡的情況,

2 在android的內核配置(linux 內核配置)中,注意:把General Setup -> enable deprecated sysfs  features to  support  old  userspace tools取消掉,否則可能影響到Vold檢測sd卡.

這一項對用戶空間的軟件有一定的影響,如果選中這一項,在sys目錄會生成  /devices/platform/s3c-sdhci.0/mmc_host:mmc0/mmc0  目錄,而不是我們需要的路徑 /devices/platform/s3c-sdhci.0/mmc_host/mmc0,不選擇這項是sysfs 文件系統對老的用戶空間程序的支持。

vold成功掛載sd后,在android的應用程序上就可以檢查到了,比如圖片瀏覽程序,可以觀看SD卡上的圖片文件.

U盤的掛載同樣如此,U盤插入開發板的USB接口中,在 /sys/devices/platform/s3c2410-ohci/usb1下面會多一個文件夾出現,你只需要把這個路徑加到監控路徑列表之中,我的最后的vold.fstab如下:

dev_mount sdcard /mnt/sdcard auto /devices/platform/s3c2410-ohci/usb1 /devices/platform/s3c-sdhci.0/mmc_host/mmc0

注意:每個參數之間必須用Tab鍵分割,否則vold程序無法正確讀取參數。

這樣當U盤插入后,Android界面程序會識別出來,提示有SD卡插入(為什么不提示U盤,這個如果您感興趣可以自己研究),可以用圖片瀏覽器,音頻播放器打開U盤里面的文件。自己曾經嘗試讓vold把U盤掛載到/mnt/udisk目錄下面,這個可以修改vold.fstab 文件,很容易實現,命令環境下顯示已經掛載成功了,但是android的圖片瀏覽器和音頻播放軟件(android2.3自帶)不能檢測U盤,所以就把U盤掛載到了/mnt/sdcard目錄,這樣上層程序就能識別U盤了。

您可以修改vold軟件,讓他檢測/mnt/udisk目錄,同時修改界面提示,提示找到“U盤”,這樣相對比較正規一些,不用給U盤帶上SD卡的帽子了,呵呵.

以上是自己在移植android2.3過程中SD,U盤部分遇到的問題,給大家分享,希望對網友有所幫助。

希望本文所述對大家Android程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.com日本| 欧美日韩国产在线一区 | 精品无人区乱码1区2区3区在线 | 狠狠色狠狠色综合婷婷tag | 免费看视频高清在线观看 | 色琪琪久久草在线视频 | 日韩在线天堂免费观看 | 2020韩国r级理论片在线观看 | 日本zzzzwww大片免费 | a级免费在线观看 | 免费一级特黄特色大片在线观看 | 三级视频中文字幕 | 日韩国产成人精品视频人 | 四虎影视永久在线精品免费 | 99久久99久久免费精品蜜桃 | 啊啊啊好大在线观看 | 午夜视频一区二区 | 91麻豆精品国产片在线观看 | 国产成人精品高清在线 | 欧美日韩国产手机在线观看视频 | 欧美va免费精品高清在线 | 国产午夜亚洲精品理论片不卡 | 成人激情 | 亚洲99久久无色码中文字幕 | 成人午夜爽爽爽免费视频 | 爱爱小说漫画 | 国产情侣视频观看 | 午夜一级免费视频 | 午夜国产在线 | 精品伊人 | 极品美女穴 | 87影院在线观看视频在线观看 | 四虎免费在线观看 | www视频免费| 好骚好紧| 日本高清视频在线免费观看 | 91手机看片国产永久免费 | 国产欧美久久一区二区 | 欧美一二区视频 | 久久这里只有精品无码3D | 激情涩涩 |