android检测SD Card是不是可用

android检测SD Card是否可用欢迎转载,转载请注明出自:www.androidkaifa.com 安卓开发网public class SDCar

android检测SD Card是否可用

欢迎转载,转载请注明出自:www.androidkaifa.com 安卓开发网public class SDCardListener extends BroadcastReceiver {        private static boolean sdcardAvailable;        private static boolean sdcardAvailabilityDetected;                /**         *          * @return SD is available ?         */        public static synchronized boolean detectSDCardAvailability() {                boolean result = false;                try {                        Date now = new Date();                        long times = now.getTime();                        String fileName = "/sdcard/" + times + ".test";                        File file = new File(fileName);                        result = file.createNewFile();                        file.delete();                } catch (Exception e) {                        // Can't create file, SD Card is not available                        e.printStackTrace();                } finally {                        sdcardAvailabilityDetected = true;                        sdcardAvailable = result;                }                return result;        }                /**         *          * @return SD is available ?         */        public static boolean isSDCardAvailable() {                if(!sdcardAvailabilityDetected) {                        sdcardAvailable = detectSDCardAvailability();                        sdcardAvailabilityDetected = true;                }                return  sdcardAvailable;        }                /* (non-Javadoc)         * @see android.content.BroadcastReceiver#onReceive(android.content.Context, android.content.Intent)         */             public void onReceive(Context context, Intent intent) {                sdcardAvailabilityDetected = false;                sdcardAvailable = detectSDCardAvailability();                sdcardAvailabilityDetected = true;        }}
将下面的这些写入你的项目功能配置文件中:
<receiver android:name=".SDCardListener">                        <intent-filter>                                <action android:name="android.intent.action.MEDIA_EJECT" />                                <action android:name="android.intent.action.MEDIA_MOUNTED" />                                <action android:name="android.intent.action.MEDIA_REMOVED" />                                <action android:name="android.intent.action.MEDIA_UNMOUNTED" />                                <data android:scheme="file" />                        </intent-filter>                </receiver>

如果我们认为上述方法太麻烦了,我给一个超级简单的方法来确定的代码如下

if (Environment.getExternalStorageState().equals(                                        Environment.MEDIA_MOUNTED)) {                                // sd card  Available                                                                          }else {//  Not currently available  }