2010-09-21 46 views
1

我正在開發一個顯示圖像的應用程序。該應用程序提供了一個選項,將圖像作爲附件發送給您。我必須將圖像保存到SD卡上才能以附件的形式通過電子郵件發送圖像。如何發送圖像而不存儲在SD卡中?

是否可以將圖像作爲附件通過電子郵件發送,而無需先將其寫入SD卡?

回答

1

@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"); 
     } 
    } 
+0

嗨@fedj,喜@sivaraj,我不完全熟悉這種方法,但我試圖做同樣的事情你。您可以分享您最終實施的內容,以及如何使用此ContentProvider將圖像附加到電子郵件中?先謝謝你! – Zarah 2010-10-29 09:37:28

0

AFAIK,寫給SDCard拳頭是唯一的方法......並且這是必須的,因爲郵件客戶端必須能夠讀取文件;所以,它必須存儲在公共場所。

1

你必須創建一個ContentProvider的爲您的圖像

+0

@can你給複雜的答案,或者給示例代碼爲我 – sivaraj 2010-09-22 08:19:40

相關問題