2012年3月1日 星期四

[Android] 偵測 USB 拔除

最近 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 的情況我們就需要停下它。

沒有留言:

張貼留言