天天看點

判斷SD卡是否已經挂載

提供一個監聽方法BroadcastReceiver 設定IntentFilter為: 

Intent.ACTION_MEDIA_MOUNTED 

Intent.ACTION_MEDIA_EJECT 

Intent.ACTION_MEDIA_REMOVED  

然後再public void onReceive(Context context, Intent intent) 中實作你的啟動邏輯startActivity

複制到剪貼闆  Java代碼

  1. private final BroadcastReceiver broadcastRec = new BroadcastReceiver()    
  2. {  
  3.   @Override  
  4.   public void onReceive(Context context, Intent intent) {  
  5.   if(intent.getAction().equals("android.intent.action.MEDIA_MOUNTED"))//SD    
  6. 卡已經成功挂載  
  7.   {  
  8.   imagepath =    
  9. android.os.Environment.getExternalStorageDirectory();//你的SD卡路徑  
  10.   }else    
  11. if(intent.getAction().equals("android.intent.action.MEDIA_REMOVED")//各種未挂載狀态  
  12.   ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_UNMOUNTED")  
  13.   ||intent.getAction().equals("android.intent.action.ACTION_MEDIA_BAD_REMOVAL"))  
  14.   {  
  15.   imagepath = android.os.Environment.getDataDirectory();//你的本地路徑  
  16.   }  
  17.   }  
  18.   };  
  19.   //在IntentFilter中選擇你要監聽的行為  
  20.   IntentFilter intentFilter = new    
  21. IntentFilter(Intent.ACTION_MEDIA_MOUNTED);  
  22.   intentFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);  
  23.   intentFilter.addAction(Intent.ACTION_MEDIA_REMOVED);  
  24.   //intentFilter.addAction(Intent.ACTION_MEDIA_SHARED);  
  25.   intentFilter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);  
  26.   //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_STARTED);  
  27.   //intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);  
  28.   intentFilter.addDataScheme("file");  
  29.   registerReceiver(broadcastRec, intentFilter);//注冊監聽函數  
  30.   unregisterReceiver(broadcastRec);//使用完登出廣播監聽函數  

From : http://dev.10086.cn/cmdn/wiki/index.php?doc-view-7232.html