項目簡介:
該項目監聽SD卡狀態
詳細介紹:
部署該應用后,當SD卡狀態發送改變時,系統會發出吐司通知用戶
該應用涉及到的知識有:
1.Android的四大組件之一:廣播接收者的使用
2.SD卡狀態的廣播
注意:
1.只有在 2.x 模擬器上才能對SD卡進行操作,所以該應用應當部署在 2.x 的模擬器上
2.一個廣播接收者是可以接受多個廣播的,直接添加多個action就可以了
3.SD卡不同的狀態有不同的廣播,主要有三種:
<action android:name="android.intent.action.MEDIA_MOUNTED" />//SD卡處于可用狀態,即掛載狀態
<action android:name="android.intent.action.MEDIA_REMOVED" /> //SD卡被拔出了,即處于移除狀態
<action android:name="android.intent.action.MEDIA_UNMOUNTED" />//SD卡插入了,但是沒有掛載,不可用,即處于卸載狀態
4.監聽SD卡狀態,一定要在過濾器中加入
<data android:scheme="file" />
步驟:
1.創建一個Android項目,在該項目中創建一個廣播接收者,代碼如下:
public class SDStatusReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 判斷收到的是什么廣播 String action = intent.getAction(); // 最好不要用switch語句,java1.7以前switch是不支持字符串的,所以最好使用if語句判斷 if ("android.intent.action.MEDIA_MOUNTED".equals(action)) { Toast.makeText(context, "SD卡可用", 0).show(); } else if ("android.intent.action.MEDIA_REMOVED".equals(action)) { Toast.makeText(context, "SD卡拔出", 0).show(); } else if ("android.intent.action.MEDIA_UNMOUNTED".equals(action)) { Toast.makeText(context, "SD卡不可用", 0).show(); } }}2.在清單文件中添加Receiver,監聽SD卡不需要權限:
<receiver android:name=".SDStatusReceiver" > <intent-filter> <action android:name="android.intent.action.MEDIA_MOUNTED" /> <action android:name="android.intent.action.MEDIA_REMOVED" /> <action android:name="android.intent.action.MEDIA_UNMOUNTED" /> <data android:scheme="file" /> </intent-filter> </receiver>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答