Email Intent отправляет текстовый файл, а не изображение - PullRequest
0 голосов
/ 06 августа 2011

Этот код я использую, чтобы сделать снимок, показать его, а затем отправить его по электронной почте:

private void takePicture() {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
    File photo = new File(Environment.getExternalStorageDirectory(),
            getIntent().getStringExtra("counter"));
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
    imageUri = Uri.fromFile(photo);
    startActivityForResult(intent, 0);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case 0:
        if (resultCode == Activity.RESULT_OK) {
            Uri selectedImage = imageUri;
            getContentResolver().notifyChange(selectedImage, null);
            ContentResolver cr = getContentResolver();
            try {
                bitmap = android.provider.MediaStore.Images.Media
                        .getBitmap(cr, selectedImage);

                savePicture(getIntent().getStringExtra("counter"), bitmap,
                        getApplicationContext());
                setImage();
                Toast.makeText(this, selectedImage.toString(), Toast.LENGTH_LONG).show();
            } catch (Exception e) {

            }
        }
    }
}

Как мне отправить письмо:

final Intent emailIntent = new Intent(
                    android.content.Intent.ACTION_SEND);


            String fileName = null;
            try {
                fileName = URLEncoder.encode(getIntent().getStringExtra("counter"), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } 
            String path =  Environment.getExternalStorageDirectory()+"/"+fileName.trim().toString();    
             Uri uri = Uri.parse("file://"+path);

             emailIntent.setType("image/png");
            emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);


                    /* Send it off to the Activity-Chooser */
            startActivity(Intent
                    .createChooser(emailIntent, "Send Email..."));

Обратите внимание, мое имя файла должно быть getIntent().getStringExtra("counter");

Когда я это делаю, моя электронная почта отправляет текстовый файл, а не файл изображения. Понятия не имею, почему это происходит ...

1 Ответ

0 голосов
/ 06 августа 2011

Я подозреваю, что это произошло с более чем одним человеком, но проблема была в следующем:

Мне пришлось добавить +".jpg" в конец имени файла, и теперь это работает,Возможно, это было простое решение, но это, безусловно, была проблемная проблема!

Надеюсь, этот пост по-прежнему помогает тем, кто столкнется с этой проблемой в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...