2012-05-23 28 views
3

我嘗試了以下方法,但沒有一個達到我的目標。如何在Android中以編程方式在MMS中附加圖片

以下代碼顯示選擇器。

Intent mmsIntent = new Intent(Intent.ACTION_SEND); 
      mmsIntent.putExtra("sms_body", "some text"); 
      mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); 
      mmsIntent.setType("image/png"); 
      startActivity(mmsIntent); 

下面的代碼顯示撰寫郵件視圖中,但圖像不附接。

Intent smsIntent = new Intent(Intent.ACTION_SENDTO); 
     smsIntent.addCategory(Intent.CATEGORY_DEFAULT); 
     smsIntent.setType("vnd.android-dir/mms-sms"); 
     smsIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));//Uri.parse(url)); 
     smsIntent.setData(Uri.parse("sms:" + "89565656")); 
     startActivity(smsIntent); 

但是, 我需要從SD卡我的形象在郵件撰寫看法。 如何做到這一點。

預先感謝您......!

回答

3

試試這個

Intent mmsIntent = new Intent(Intent.ACTION_SEND); 
//file is the file on the SD Card 
mmsIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(file.toURL().toString())); 
mmsIntent.setType("image/png");//mmsIntent.setType("image/*"); Maybe? 
startActivity(mmsIntent); 
+0

謝謝你的答案。但是這個代碼也顯示了一個選擇器。 – Noby

+0

嗯,您需要的活動是 com.android.mms.ui.ComposeMessageActivity。(請參閱編寫新的MMS時的LogCat)您無法直接訪問它。 – UnknownJoe

0

試試這個代碼,如果不想打開選擇器,並直接關聯圖像

PackageManager pm = getPackageManager(); 
    Intent sendIntent = new Intent(Intent.ACTION_SEND);  


    List<ResolveInfo> resInfo = pm.queryIntentActivities(sendIntent, 0); 
    for (int i = 0; i < resInfo.size(); i++) { 
     ResolveInfo ri = resInfo.get(i); 
     String packageName = ri.activityInfo.packageName; 

     if(packageName.contains("mms")) { 
      Log.d("TAG", packageName + " : " + ri.activityInfo.name); 
      sendIntent.setComponent(new ComponentName(packageName, ri.activityInfo.name)); 
     } 
    } 

    sendIntent.putExtra("address", "03434690494"); 
    sendIntent.putExtra("sms_body", "some text"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("/sdcard/DCIM/Camera/image.jpg")); 
    sendIntent.setType("image/*"); 
    startActivity(sendIntent); 
相關問題