繁体   English   中英

我想检查手机是否包含SD卡,如果SD卡不可用,以下方法总是返回true

[英]I want to check the phone contain SD card or not and following method always return true if SD card not available

我使用以下方法来检查手机是否包含sd卡,但如果SD卡不可用,问题总是返回true请帮助我。

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);

        if(isSDPresent)
        {
          // yes SD-card is present
            Toast.makeText(getApplicationContext(), "SD card available ", 2000).show();
        }
        else
        {
         // Sorry
            Toast.makeText(getApplicationContext(), "SD card not available ", 2000).show();
        }

它返回true,因为getExternalStorage()返回内部存储器中的虚拟SD卡。

您可以使用

Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED) 
     && Environment.isExternalStorageRemovable();

检查SD卡是否可拆卸

您不能使用像Android这样的Android API进行检查。* ExternalStorage *因为它们引用了作为数据分区一部分的模拟SD卡(因此它将一直挂载)。

您可以运行“mount”shell命令并尝试查找外部SD卡安装点,但是供应商(有时是设备)特定。

试着用这个:

File file = new File("/mnt/extSdCard");
     try
     {
     File list[] = file.listFiles();
     Toast.makeText(getApplicationContext(), "Yes sdcard is mounted, file count "+list.length, Toast.LENGTH_LONG).show();
     }
     catch(NullPointerException o)
     {
     Toast.makeText(getApplicationContext(), "Sorry no sdcard is mounted:", Toast.LENGTH_LONG).show();
     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM