2012-03-21 13 views
0

アセットフォルダから複数の画像を添付します。電子メールは完全な成功を送信しますが、添付イメージは取得しません。電子メールに0 KBの画像を表示する。 ここに私のコード。何か考えてください。他の方法で複数の画像を送ることができます。androidのアセットから複数の画像をアセットから添付する

+0

これらの画像をsdcardに入れてメールに添付してみるとどうなるのですか? – user370305

+0

資産フォルダに画像があります。私は資産フォルダから画像を送信したい。 – Dugs

+0

これらの画像は、アンドロイドのために読めるようになっている可能性があります。アセットディレクトリとアセットのための電子メールアプリケーションは、アンドロイドアプリケーションのためにプライベートです。 – user370305

答えて

1

最初の部分

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
     emailIntent.setType("jpeg/image"); 
     emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, body); 


     ArrayList<Uri> uris = new ArrayList<Uri>(); 
     //convert from paths to Android friendly Parcelable Uri's 
     for (int i=0; i < arrImageslist.size(); i++) 
     { 
      Uri u=Uri.parse("file:///android_asset/DiseaseImages/"+arrImageslist.get(i)); 
      uris.add(u); 


     } 

     emailIntent.putParcelableArrayListExtra(android.content.Intent.EXTRA_STREAM, uris); 
     startActivity(android.content.Intent.createChooser(emailIntent, "Send mail...")); 
....

Intent sendIntent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
sendIntent.setType("plain/text"); 
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"[email protected]"}); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Accident Capture"); 
sendIntent.putExtra(Intent.EXTRA_TEXT, emailBody); 

ArrayList<Uri> uriList = getUriListForImages(); 
sendIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList); 
Log.d(TAG, "Size of the ArrayList :: " +uriList.size()); 
FormHolderActivity.this.startActivity(Intent.createChooser(sendIntent, "Email:")); 

------------------ GetUriListForImages ---------- ----------------------

private ArrayList<Uri> getUriListForImages() throws Exception { 
      ArrayList<Uri> myList = new ArrayList<Uri>(); 
      String imageDirectoryPath = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/folder/"; 
      File imageDirectory = new File(imageDirectoryPath); 
      String[] fileList = imageDirectory.list(); 
      if(fileList.length != 0) { 
       for(int i=0; i<fileList.length; i++) 
       { 
        try 
        { 
         ContentValues values = new ContentValues(7); 
         values.put(Images.Media.TITLE, fileList[i]); 
         values.put(Images.Media.DISPLAY_NAME, fileList[i]); 
         values.put(Images.Media.DATE_TAKEN, new Date().getTime()); 
         values.put(Images.Media.MIME_TYPE, "image/jpeg"); 
         values.put(Images.ImageColumns.BUCKET_ID, imageDirectoryPath.hashCode()); 
         values.put(Images.ImageColumns.BUCKET_DISPLAY_NAME, fileList[i]); 
         values.put("_data", imageDirectoryPath + fileList[i]); 
         ContentResolver contentResolver = getApplicationContext().getContentResolver(); 
         Uri uri = contentResolver.insert(Images.Media.EXTERNAL_CONTENT_URI, values); 
         myList.add(uri); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
      return myList; 
     } 
+0

sdcardの代わりに資産コードを入れてください。 .... – kanchan

関連する問題