您好,登錄后才能下訂單哦!
項(xiàng)目簡介:
該項(xiàng)目監(jiān)聽SD卡狀態(tài)
詳細(xì)介紹:
部署該應(yīng)用后,當(dāng)SD卡狀態(tài)發(fā)送改變時,系統(tǒng)會發(fā)出吐司通知用戶
該應(yīng)用涉及到的知識有:
1.Android的四大組件之一:廣播接收者的使用
2.SD卡狀態(tài)的廣播
注意:
1.只有在 2.x 模擬器上才能對SD卡進(jìn)行操作,所以該應(yīng)用應(yīng)當(dāng)部署在 2.x 的模擬器上
2.一個廣播接收者是可以接受多個廣播的,直接添加多個action就可以了
3.SD卡不同的狀態(tài)有不同的廣播,主要有三種:
<action android:name="android.intent.action.MEDIA_MOUNTED" /> //SD卡處于可用狀態(tài),即掛載狀態(tài)
<action android:name="android.intent.action.MEDIA_REMOVED" /> //SD卡被拔出了,即處于移除狀態(tài)
<action android:name="android.intent.action.MEDIA_UNMOUNTED" /> //SD卡插入了,但是沒有掛載,不可用,即處于卸載狀態(tài)
4.監(jiān)聽SD卡狀態(tài),一定要在過濾器中加入
<data android:scheme="file" />
步驟:
1.創(chuàng)建一個Android項(xiàng)目,在該項(xiàng)目中創(chuàng)建一個廣播接收者,代碼如下:
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,監(jiān)聽SD卡不需要權(quán)限:
<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>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。