在我的Android应用程序中,我使用以下代码将位图文件保存到外部存储器的目录中:
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state))
{
final String mPath = Environment.getExternalStorageDirectory().getAbsolutePath() + getResources().getString(R.string.record_folder);
File dir = new File(mPath);
if(!dir.exists()) {
dir.mkdirs();
}
OutputStream fout = null;
File imageFile = new File(mPath + getResources().getString(R.string.file_name));
Bitmap im = Bitmap.createBitmap(b, 0, 0, canvas.getWidth(), (int) ((float)canvas.getHeight())*600/800);
try {
fout = new FileOutputStream(imageFile);
im.compress(Bitmap.CompressFormat.JPEG, 97, fout);
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
// ?
}
如果安装了我的应用程序的设备没有外部存储器,我该怎么办?
感谢。
答案 0 :(得分:2)
希望这可能会帮助你!!!
使用此代码检查内置外部存储中的媒体可用性。
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
// We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
// We can only read the media
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
// Something else is wrong. It may be one of many other states, but all we need
// to know is we can neither read nor write
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
你的代码依赖于那个
答案 1 :(得分:1)
然后你可以使用:
Context.getFilesDir()
获取内部存储器中的文件路径。如果您的设备需要外部存储器,那么您可以告知您的用户并询问是否将图像存储在内部存储器中。
答案 2 :(得分:1)
检查android OS提供的存储选项。如果没有安装外部存储器,我会将文件保存在内部存储器中。
http://developer.android.com/guide/topics/data/data-storage.html