我使用以下方法检查手机是否包含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();
}
答案 0 :(得分:0)
它返回true,因为getExternalStorage()
返回内部存储器中的虚拟SD卡。
您可以使用
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)
&& Environment.isExternalStorageRemovable();
检查是否可以移除SD卡
答案 1 :(得分:0)
您无法使用Android API检查环境。* ExternalStorage *因为它们是指模拟的SD卡,它是数据分区的一部分(所以它将一直挂载)。
你可以运行" mount" shell命令并尝试查找外部SD卡安装点,但是供应商(有时是设备)特定。
答案 2 :(得分:0)
尝试使用它:
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();
}