我正在開發一個顯示圖像的應用程序。該應用程序提供了一個選項,將圖像作爲附件發送給您。我必須將圖像保存到SD卡上才能以附件的形式通過電子郵件發送圖像。如何發送圖像而不存儲在SD卡中?
是否可以將圖像作爲附件通過電子郵件發送,而無需先將其寫入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