Android判斷SD卡是否已經掛載

mx64 9年前發布 | 2K 次閱讀 Java Android

提供一個監聽方法BroadcastReceiver 設置IntentFilter為:Intent.ACTION_MEDIA_MOUNTEDIntent.AC TION_MEDIA_EJECTIntent.ACTION_MEDIA_REMOVED 然后再public void onReceive(Context context, Intent intent) 中實現你的啟動邏輯startActivity

private final BroadcastReceiver broadcastRec = new BroadcastReceiver()

{

  @Override

  public void onReceive(Context context, Intent intent) {

  if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED"))//SD

卡已經成功掛載

  {

  imagepath =

android.os.Environment.getExternalStorageDirectory();//你的SD卡路徑

  }else

if(intent.getAction().equals("android.intent.action.MEDIA_REMOVED")//各種未掛載狀態

  ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_UNMOUNTED")

  ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_BAD_REMOVAL"))

  {

  imagepath = android.os.Environment.getDataDirectory();//你的本地路徑

  }

  }

  };

  //在IntentFilter中選擇你要監聽的行為

  IntentFilter intentFilter = new

IntentFilter(Intent.ACTION_MEDIA_MOUNTED);

  intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);

  intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);

  intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);

  //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);

  intentFilter.addDataScheme("file");

  registerReceiver(broadcastRec, intentFilter);//注冊監聽函數

  unregisterReceiver(broadcastRec);//使用完注銷廣播監聽函數</pre>

 本文由用戶 mx64 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!