最近 Player 開始測試播放 USB 上的檔案,播放當然是正常的,只是當使用者未正常地結束播放就拔掉 USB 這件事就不知道怎麼處理了。
好在同事分享了一個方法,能直接透過 Broadcast Receiver 來獲得通知,重點在於要怎麼寫 IntentFilter:
IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(Intent.ACTION_MEDIA_EJECT);intentFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);intentFilter.addAction(Intent.ACTION_MEDIA_NOFS);intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTABLE);intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);intentFilter.addDataScheme("file");
對我們的情況來說,最重要的是 Intent.ACTION_MEDIA_EJECT,因為不管怎麼樣,只要 USB 被拔掉了,而 Player 又在播放 local file 的情況我們就需要停下它。
沒有留言:
張貼留言