如何发送图像而不存储在SD卡中?
问题描述:
我正在开发一个显示图像的应用程序。该应用程序提供了一个选项,将图像作为附件发送给您。我必须将图像保存到SD卡上才能以附件的形式通过电子邮件发送图像。如何发送图像而不存储在SD卡中?
是否可以将图像作为附件通过电子邮件发送,而无需先将其写入SD卡?
答
@sivaraj 例如,如果您保存您图像中的电话(甚至在私人文件夹)的任何地方 只是修改它,如果你不想将它存储在openFile方法中。 在您的清单中注册您的提供者并拥有正确的权限属性,就是这样!
public class ImageProvider extends ContentProvider {
private static final String URI_PREFIX = "content://com.android.myproject.anythingyouwant";
public static String constructUri(String url) {
Uri uri = Uri.parse(url);
return uri.isAbsolute() ? url : URI_PREFIX + url;
}
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
File file = new File(uri.getPath());
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
}
@Override
public boolean onCreate() {
return true;
}
@Override
public int delete(Uri uri, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public String getType(Uri uri) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public Uri insert(Uri uri, ContentValues contentvalues) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public Cursor query(Uri uri, String[] as, String s, String[] as1, String s1) {
throw new UnsupportedOperationException("Not supported by this provider");
}
@Override
public int update(Uri uri, ContentValues contentvalues, String s, String[] as) {
throw new UnsupportedOperationException("Not supported by this provider");
}
}
答
AFAIK,写给SDCard拳头是唯一的方法......并且这是必须的,因为邮件客户端必须能够读取文件;所以,它必须存储在公共场所。
嗨@fedj,喜@sivaraj,我不完全熟悉这种方法,但我试图做同样的事情你。您可以分享您最终实施的内容,以及如何使用此ContentProvider将图像附加到电子邮件中?先谢谢你! – Zarah 2010-10-29 09:37:28