Android判斷SD卡是否已經掛載
提供一個監聽方法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>