2012-11-05 93 views
2

好的,再次,我在學習android的同時,在我的頭上。在最終開發我的簡單小應用程序後,我嘗試使用具有本機應用程序的一些好處。Android應用程序通過電子郵件發送圖像

所以,項目一個,做一個網頁,其中可以通過電子郵件(無論是從畫廊或照相機)將圖像發送

本質上它是一個選擇,並通過電子郵件發送,但我甚至不知道從哪裏開始。

我發現了一些其他人在詢問的代碼; Android App Take/ Email Photo

我嘗試這樣做,但得到的各種錯誤,從蝕,再接種到downloadedPic部分。

如果有人可以請看看,並告訴我最好的方式來做到這一點,那將是驚人的。像往常一樣,對不起,我beginers愚蠢,但我想每個人都有學習的地方

THIS IS MY .JAVA目前

public class Photos extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_photos); 
    getActionBar().setDisplayHomeAsUpEnabled(true); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_photos, menu); 
    return true; 
} 

THIS IS MY .XML目前

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Please chose the options below to select and upload photos into the 
    DCC for the selected project..." 
    tools:context=".Photos" 
    android:textAppearance="?android:attr/textAppearanceMedium" /> 


</LinearLayout> 
+0

它應該是附件或身體區域? –

+0

附件請:)如果可能的話...... –

+0

如果你能解釋每個部分在代碼中的作用,那將是驚人的! –

回答

2

首先你應該做的是通過使用文件獲取圖像存儲路徑,

File *photo = new File(Environment.getExternalStorageDirectory()+"/Android/data/"+getApplicationContext().getPackageName()+"/Fault", imagename+".png"); 

然後再轉換文件路徑中Uri

Uri imageuri = Uri.fromFile(photo); 

最後通過電子郵件使用發送圖像您imageuri

Intent send_report = new Intent(Intent.ACTION_SEND); 
             send_report.putExtra(Intent.EXTRA_EMAIL, new String[]{ email_emailid}); 
             send_report.putExtra(Intent.EXTRA_SUBJECT, email_subject); 
             send_report.putExtra(Intent.EXTRA_STREAM, imageuri); 
             send_report.putExtra(Intent.EXTRA_TEXT, email_body); 
             send_report.setType("text/plain"); 
             send_report.setType("image/png"); 
             startActivityForResult(Intent.createChooser(send_report, "Choose an Email client"), 77); 

希望它能幫助。

+0

我知道這個意圖屬於頁面的.java,但是URI和FILE呢? –

+0

哦,並感謝:p –

+0

是工作? – GoCrazy

1

讓你的形象第一:

// Get Image form mnt/sdcard/YOUR_FLODER/my_image.png  
    ImageView my_Image = (ImageView)findViewById(R.id.my_Image);  
    Imagepath="/sdcard/YOUR_FLODER/"+my_iamge+".png"; 
    bitmap = BitmapFactory.decodeFile(Imagepath); 

獲取郵件地址:

// This Will fetch merchant's Email id from Deivce. 
    Pattern emailPattern = Patterns.EMAIL_ADDRESS; // API level 8+ 

    AccountManager manager =(AccountManager)getSystemService(ACCOUNT_SERVICE); 
    //Account[] accounts = AccountManager.get(getApplicationContext()).getAccounts(); 
    Account[] accounts = manager.getAccounts(); 

    for (Account account : accounts) 
    { 
     if (emailPattern.matcher(account.name).matches()) 
     { 
      possibleEmail = account.name; 
     } 
    } 

發送Click事件:

 Intent i = new Intent(android.content.Intent.ACTION_SEND); 
     i.setType("image/png"); 
     i.putExtra(Intent.EXTRA_CC,new String[]{possibleEmail}); 
     i.putExtra(android.content.Intent.EXTRA_SUBJECT, "Mail With Image attachment"); 
     startActivity(Intent.createChooser(i2, "Send Email...")); 

在年底Photos.java

public class Photos extends Activity 
{ 
    @Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.Activity_Photos); 

      // your image fetching code 
      // fetch mail code 
      // write button click event 
       // put intent code in click event 

    } 
} 

所以希望你現在可以全部代碼。

+0

好吧,對不起,是一種痛苦,但現在我更加困惑,有沒有可能爲我提供.jave和.xml頁面的代碼,只有兩個serperate代碼... –

+0

**我的活動名稱是** SRC> Photos.Java和佈局> Activity_Photos.xml 對不起,這是一個新手! –

+0

嘿,現在就試試吧...... –

相關問題