Android應用例項之----基於BroadCastReceiver的SD卡裝載解除安裝例項!

android_tutor發表於2010-10-09

    大家好,經過國慶七天終於又和大家見面了,今天給大家分享的是基於BroadCastReceiver的SD卡裝載解除安裝例項.

    Android裝置預設的是當我們插上USB和電腦相連線時,在Android裝置狀態列上會發一條通知資訊,當我們點選這條訊息時,會出現一個對話方塊有"裝載SD卡"和"取消"兩個按鈕,當我們點選裝載時,我們的SD卡將會變成U盤一樣,我們通過電腦可以對SD卡進行操作。

    但是我們客戶認為插上USB以後以通知的形式提示使用者,這樣不智慧,他們的需求是當我們插入USB後,就會彈出一個視窗,讓使用者選擇裝載SD卡或者不裝載。

   當我拿到這個需求時,我首先想到了去改framework,當framework改得小有模樣時,突然想到自己寫個應用實現這個功能是多麼的簡單,也就是利用到了BroadCastReceiver這個元件,當然我這個應用是整合到了System/app下的,並且是在Launcher應用列表中看不到的。

    BroadCastReceiver是Android中重要的五大元件之一,當然實現BroadCastReceiver有兩種方法:一種是我們寫一個類繼承BroadCastReceiver並在AndroidManifest.xml檔案中註冊;另一種方法是在程式碼中直接註冊BroadCastReceiver。

   為了便於大家理解,我簡單寫了一個例項,希望對大家有所幫助,下面是具體步驟:

   第一步:新建一個Android工程,命名為UsbStorage。目錄結構如下:

  

第二步:修改main.xml佈局檔案,程式碼如下:

第三步:新建一個BroadcastReceiver,命名為UsbBroadCastRecevier.java,程式碼如下:

第四步:修改主核心程式UsbStorageActivity.java程式碼如下:

第五步:修改AndroidManifest.xml檔案,程式碼如下:

第六步:執行上述工程,當我們插上USB後啟動UsbStorageActivity,效果如下:

點選裝載SD卡按鈕:

當拔掉USB或者點選取消按鈕,該應用關閉。

 

當然我們這個應用如果按以上方法是必然出現在應用列表中的,而這個應用只能是在插上USB後才啟動,使用者不能自啟動,所以我們需要將這個應用隱藏起來,這裡其實很簡單,只要將第五步中的第12行程式碼去掉即可,即:

不信大家可以試試。lol~

Ok,今天晚上就先寫到這裡。大家有什麼疑問的可以留言.....bye~

相關文章