http://bbs.youkuaiyun.com/topics/370039121
static int getCardId(Context context) { ContentResolver res = context.getContentResolver(); Cursor c = res.query(Uri.parse("content://media/external/fs_id"), null, null, null, null); int id = -1; if (c != null) { c.moveToFirst(); id = c.getInt(0); c.close(); } return id; }
以上代码是com.android.music AP中的一部分。我想问下Uri.parse("content://media/external/fs_id")这个东西是是啥玩意?SDcard的序列号?还是别的什么东西?
content://media/external/fs_id
fs_id:唯一文件系统标识号,也就是定死的
个人理解是:此URL返回Sdcard上和fs_id对应的存储路径下所有媒体文件
content://media/external/fs_id此URL决定了ContentResolver 应该与哪一个ContentProvider对话即和此\packages\providers\MediaProvider\src\com\android\providers\media\MediaProvider.java对话
刚才又看了下代码,有这么一句话"// Only restore the saved playlist if the card is still the same one as when the playlist was saved",看来通过这个URI获取到的是标示外部存储设备的ID,当我们更换SD卡时,通过这个获取到的ID会改变。
Content://media/external/fs_id
media:媒体介质
external:外部的
fs_id:文件系统id
从字面意思看,这个应该就是查询你有几个外部磁盘吧,然后获取磁盘的id以供后继使用
本文深入分析了Android音乐应用中使用ContentResolver和Uri.parse方法查询SD卡标识符的实现细节,解释了content://media/external/fs_id这一特定URI的含义及其作用,揭示了其在不同SD卡更换情况下的行为变化。

被折叠的 条评论
为什么被折叠?



