Android学习笔记-监听外部存储状态
1 BroadcastReceiver mExternalStorageReceiver; 2 boolean mExternalStorageAvailable = false; 3 boolean mExternalStorageWriteable = false; 4 5 void updateExternalStorageState() { 6 String state = Environment.getExternalStorageState(); 7 if (Environment.MEDIA_MOUNTED.equals(state)) { 8 mExternalStorageAvailable = mExternalStorageWriteable = true; 9 } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 10 mExternalStorageAvailable = true; 11 mExternalStorageWriteable = false; 12 } else { 13 mExternalStorageAvailable = mExternalStorageWriteable = false; 14 } 15 handleExternalStorageState(mExternalStorageAvailable, 16 mExternalStorageWriteable); 17 } 18 19 void startWatchingExternalStorage() { 20 mExternalStorageReceiver = new BroadcastReceiver() { 21 @Override 22 public void onReceive(Context context, Intent intent) { 23 Log.i("test", "Storage: " + intent.getData()); 24 updateExternalStorageState(); 25 } 26 }; 27 IntentFilter filter = new IntentFilter(); 28 filter.addAction(Intent.ACTION_MEDIA_MOUNTED); 29 filter.addAction(Intent.ACTION_MEDIA_REMOVED); 30 registerReceiver(mExternalStorageReceiver, filter); 31 updateExternalStorageState(); 32 } 33 34 void stopWatchingExternalStorage() { 35 unregisterReceiver(mExternalStorageReceiver); 36 }