Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android開發項目當中SD卡的插拔監聽廣播

Android開發項目當中SD卡的插拔監聽廣播

編輯:Android開發實例

  Android的實際開發項目當中難免會遇到SD卡的插拔的監聽事件檢測,現在我們一起來看下安卓開發當中應用廣播的知識,記錄下來,以備後用哦。

  1. 如果是單個Activity監聽廣播,則在Activity的onCreate方法裡面,用下面的代碼注冊廣播

  IntentFilter iFilter = new IntentFilter();

  iFilter.addAction(Intent.ACTION_MEDIA_EJECT);

  iFilter.addDataScheme("file");

  registerReceiver(mBroadcastReceiver , iFilter);

  2. 如果是整個程序監聽廣播,則在Android manifest用下面的方法注冊廣播

  <receiver android:name=".activities.widget.UsbBroadCastReceiver">

  <intent-filter android:priority="1000">

  <action android:name="android.intent.action.MEDIA_MOUNTED"/>

  <action android:name="android.intent.action.MEDIA_EJECT" />

  <data android:scheme="file"/>

  </intent-filter>

  </receiver>

  3. 如果廣播別別的程序截獲,導致你無法收到廣播,給intent-filter加上一個android:priority="1000"的屬性就行,添加位置,參照上面的代碼。

  4. 實際項目裡面是整個程序監聽廣播,

  ①Android Manifest的代碼如下:

  <receiver android:name=".activities.widget.UsbBroadCastReceiver">

  <intent-filter android:priority="1000">

  <action android:name="android.intent.action.MEDIA_MOUNTED"/>

  <action android:name="android.intent.action.MEDIA_EJECT" />

  <data android:scheme="file"/>

  </intent-filter>

  </receiver>

  Android Manifest一定要在intent-filter注意加上<data android:scheme=”file”>,否則無法監聽到SD卡插拔廣播,如果你在Activity裡面用代碼注冊廣播,那一定要加iFilter.addDataScheme("file")

  ②廣播的代碼如下:

  /**

  * @author Anonymous

  * @createDate 2012-4-9

  * @version v0.5.1

  */

  public class UsbBroadCastReceiver extends BroadcastReceiver {

  @Override

  public void onReceive(Context context, Intent intent) {

  String action = intent.getAction();

  if(action.equals(Intent.ACTION_MEDIA_EJECT)){

  ToastUtil.ToastShort(context, R.string.usb_sdeject);

  }else if(action.equals(Intent.ACTION_MEDIA_MOUNTED)){

  ToastUtil.ToastShort(context, R.string.usb_sdconnect);

  }

  }

  }

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved