android检测SD Card是不是可用
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 }