sd卡广播的理解总结

88 篇文章 1 订阅
74 篇文章 1 订阅

本人是做车机的,多媒体播放是车机系统中比较重要的功能,现在开车的人有时候喜欢听歌的,所以需要播放本地歌曲,这些歌曲是机主电脑或手机下载然后拷贝到sd卡或TF卡中的.下面针对播放器播放音乐时各种热插拔sd卡的情况作处理,以免程序崩溃,也是sd卡插拔广播的理解.


(1)首先请注意,安卓中一般只监听SD卡的拔插,不会去监听usb的拔插,较少,你见过手机有USB接口吗?现在的手机连sd卡都是不可拆卸的,而且监听usb的广播actions和sd卡的不一样.但是车机开发会保留一个sd卡卡槽和一个USB接口,其实这个USB接口也是SD卡,只不过是用读卡器把TF卡挂载到文件系统中去,因为拔插这个USB,我们项目开发也是通过SD卡的广播去注册接收也能接收到,所以是这么认为的;


(2)不管sd卡是直接拔掉还是从通知栏里手动卸载掉都会发出Intent.ACTION_MEDIA_EJECT和ACTION_MEDIA_UNMOUNTED广播


(3)不管sd卡是以何种方式安装,系统都会发出Intent.ACTION_MEDIA_MOUNTED和Intent.ACTION_MEDIA_SCANNER_STARTED以及Intent.ACTION_MEDIA_SCANNER_FINISHED广播,根据自己的需要进行监听即可


(4)另外需要注意UNMOUNTED和REMOVED的区别,unmounted只是没有挂载到文件系统上,不一定从sd卡卡槽中移除了;removed就说明sd卡从卡槽中移除了


(5)其实sd卡的拔插广播都是从frameworks\base\services\java\com\android\server\目录下MountService.java类中发出的,它也是通过jni从底层获取当前的外设列表


(6)收到sd卡的挂载的广播intent,这个intent中带有data和path,可以通过intent.getData().getPath()拿到,很有用的,可以通过path判断是哪一个外设挂载了;


上图中红色标记部分记得加上哦,否则监听不到的



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值