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 }

 

posted @ 2013-07-29 16:01  Agrimony  阅读(358)  评论(0)    收藏  举报