我写了一个使用Environment.getExternalStoragePublicDirectory的应用程序( Environment.DIRECTORY_PICTURES)找到要存储图像的文件夹。然后我将jpg写入该文件夹,然后使用以下代码允许用户通过电子邮件,短信,Facebook ...或他们的手机设置的任何应用程序。
Intent i = new Intent(Intent.ACTION_SEND);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.setType("image/jpg");
File shareImg = new File(fileName);
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(shareImg));
startActivity(i);
此代码在我测试的设备上正常工作。现在我发现没有SD卡的用户无法使用此代码。所以我决定尝试将图像写入内存。我能够将图像写入我的apps文件夹并将访问权限设置为Context.MODE_WORLD_READABLE,但是当我触发意图时,GMail,SMS或任何其他地图只会给我一条消息,说明他们无法附加图像。我认为问题可能是图像不在设备的实际“图片”文件夹中,但我找不到相当于Environment.getExternalStoragePublicDirectory的路由( Environment.DIRECTORY_PICTURES)用于内部存储。有没有其他人能够做到这样的事情?
答案 0 :(得分:1)
我可以通过更改要使用的代码来解决此问题:
getExternalFilesDir(Environment.DIRECTORY_PICTURES)
而不是:
Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES)