主题 : 如何实现没有sd卡在android2.1系统下播放音乐,请大家拍砖并留下宝贵意见,多谢。 复制链接 | 浏览器收藏 | 打印
冰冻三尺,非一日之寒;为山九仞,岂一日之功。以博会友snowboy.blog.chinaunix.net
级别: 侠客
UID: 47273
精华: 1
发帖: 51
金钱: 310 两
威望: 62 点
贡献值: 1 点
综合积分: 122 分
注册时间: 2011-05-20
最后登录: 2013-04-23
楼主  发表于: 2012-03-30 14:06

 如何实现没有sd卡在android2.1系统下播放音乐,请大家拍砖并留下宝贵意见,多谢。

在移植android2.1时,发现开发板没有SD卡就没法播放音乐,发现该系统当插入sd卡的时候系统会自动mount到目录/sdcard,我用u盘接在开发板上,并把u盘mount到/sdcard还是不能解决这个问题,而我发现友善之臂在qt图形界面的音乐播放器在没有sd卡的情况下依然可以播放音乐,不知道如何做到没有sd卡在android2.1系统下播放音乐,请高手们指教,多谢。
冰冻三尺,非一日之寒;为山九仞,岂一日之功。以博会友snowboy.blog.chinaunix.net
级别: 侠客
UID: 47273
精华: 1
发帖: 51
金钱: 310 两
威望: 62 点
贡献值: 1 点
综合积分: 122 分
注册时间: 2011-05-20
最后登录: 2013-04-23
1楼  发表于: 2012-03-30 14:08
下面是kasim版主的宝贵意见:
这是Android 2.1的特性。有人尝试过修改 android framework将NAND Flash的存储空间映射到/sdcard目录来让Android以为有SD卡,在Android 4.0之后可以通过vold的配置文件映射内部存储空间。
冰冻三尺,非一日之寒;为山九仞,岂一日之功。以博会友snowboy.blog.chinaunix.net
级别: 侠客
UID: 47273
精华: 1
发帖: 51
金钱: 310 两
威望: 62 点
贡献值: 1 点
综合积分: 122 分
注册时间: 2011-05-20
最后登录: 2013-04-23
2楼  发表于: 2012-03-30 14:28
对此问题,我只找到一篇相关文献,但还是不知如何修改,将文献贴出:
原文链接:http://www.embeddedlinux.org.cn/html/Androidzhuanqu/201110/29-1792.html

我们知道,Android的设计中,SD卡(ExternalStorage)是非常重要

APK的manifest.xml中可以定义prefer external或auto 来选择安装到SD卡

有些APK在运行中需要SD卡来存储数据,而有些大型游戏需要大量的SD卡空间

这样如果系统没有接入SD卡,某些APK就会碰到安装或运行的问题

但对于现在的硬件平台,很多都内置了几个G的存储空间(Nand/iNand Flash)

放着这么大的空间不用,却要依赖于SD卡插入才能运行某些APK

这样似乎有点说不过去

所以要想办法把内置空间用起来

现在主流的做法是怎样的呢

三星、联想好像是这样做的

把内部flash mount为sdcard,然后把外部sd卡 mout到 /mnt/sdcard/下面的某个子目录

比如 /mnt/sdcard/externalsdcard

这种做法的优点是可以有一个一直存在的SD卡

缺点是内置flash要足够大,mediascanner中要增加/mnt/sdcard/externalsdcard的扫描、mount/unmount处理

而APK是没有机会安装到实际的外置SD卡上的


另外的一种办法是

在没有SD卡插入时把一部分内置flash mount到/mnt/sdcard

在SD卡插入时把实际SD卡重新mount到/mnt/sdcard

这种做法的优点是SD卡插入时APK会安装到实际SD卡上,可以把flash上的某个目录作为虚拟SD卡,比较灵活

缺点是相当于两个SD卡在切换,就是说安装到虚拟SD卡上的APK在第二个SD卡插入时消失


第一种的代码修改比较多,主要是增加/mnt/sdcard/externalsdcard设备的mount/unmount, mediascan处理

第二种的修改比较少,只需要在vold里面做workaround
[ 此帖被snowboy9859在2012-03-30 14:38重新编辑 ]