1

我正在开发一个程序,该程序需要在运行时从 sdcard 或内部存储中读取/写入一些文件。当我在手机中安装 sdcard 时,它运行正常,但是如果我卸载 sdcard,我的应用程序会引发一些错误。对于没有像 Htc one x 这样的卡槽的手机或没有插入任何 sdcard 的手机,我必须做什么?我怎样才能在那些手机存储上写字?我不想将此文件写入 /data/data/my.app.package 文件夹。我想写一个可以从其他应用程序读取文件的地方。 首先我用这个代码检查存储状态,如果 sdcard 被插入并且可写,我没有任何问题。但如果 sdcard 不存在,我真的不知道我必须做什么。

string _location;  
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
          _location=Environment.getExternalStorageDirectory()+"/myfolder/";
          Toast.makeText(context, _location, 1000).show();
      }
      else
      {
          _location="/myfolder/"
          Toast.makeText(context, Environment.getExternalStorageDirectory().toString(), 1000).show();

      }

      mysync mys=new mysync(); // Asynctasc that writes some file on _location path
      mys.execute(_location);

我很困惑,不幸的是我没有任何带有大内存的手机。请帮我。

4

1 回答 1

1

我正在开发一个程序,该程序需要在运行时从 sdcard 或内部存储中读取/写入一些文件。

在这里,在您的问题标题中,您说您写入内部存储。后来,您说您不想写入内部存储。

它是哪一个?

对于没有像 Htc one x 这样的卡槽的手机或没有插入任何 sdcard 的手机,我必须做什么?

外部存储!=“sdcard”。外部存储可以是设备制造商想要的任何东西,只要它符合兼容性定义文档的条款。因此,外部存储设备可以是可移动的(例如,SD 卡)或不可移动的(例如,板载闪存的专用部分)。而且,在 Android 3.0+ 上,外部存储只是包含内部存储的同一分区上的一个特殊子目录。

您只关心外部存储当前是否可用。它应该在 Android 3.0+ 设备上几乎一直可用。如果设备插入主机并且主机已安装设备的外部存储(例如,作为 Windows 上的驱动器号),它将在 Android 1.x 和 2.x 设备上不可用。

如果 sdcard 不存在,我真的不知道我要做什么。

您要求用户从他们的主机上卸载他们的设备。或者,您决定在这些情况下写入内部存储。

于 2012-05-22T11:48:53.600 回答