Попытка присоединить файл от SD-карты до электронной почты

Я думаю, вам просто нужно вызвать правильный селектор: body verus html. Рассмотрим следующий код:

$(function() {
  $("body").append("<div class='windowWidth'>Window Width: " + $(window).width() + "px</div>");

  function response() {
    if ($(window).width() > 480 && $(window).width() < 768) {
      $("body").css({
        "background-color": "red",
        color: "black"
      });
    } else {
      $("body").css({
        "background-color": "black",
        color: "white"
      });
    }
  }

  response();

  $(window).resize(function() {
    response();
    $(".windowWidth").html("Window Width: " + $(this).width() + "px");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
  <p>Paragraph in Body</p>
</div>

Надеюсь, что помогает.

69
задан lopez.mikhael 13 April 2015 в 09:43
поделиться

4 ответа

Также возникает та же проблема

Код:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
    emailIntent.setType("image/jpeg");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] 
    {"me@gmail.com"}); 
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
    "Test Subject"); 
    emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
    "go on read the emails"); 
    Log.v(getClass().getSimpleName(), "sPhotoUri=" + Uri.parse("file:/"+ sPhotoFileName));
    emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:/"+ sPhotoFileName));
    startActivity(Intent.createChooser(emailIntent, "Send mail..."));

От adb logcat:

V/DumbDumpersMain( 3972):   sPhotoUri=file://sdcard/DumbDumpers/DumbDumper.jpg
I/ActivityManager(   56):   Starting activity: Intent { action=android.intent.action.CHOOSER comp={android/com.android.internal.app.ChooserActivity} (has extras) }
I/ActivityManager(   56):   Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x3000000 comp={com.google.android.gm/com.google.android.gm.ComposeActivityGmail} (has extras) }
I/ActivityManager(   56):   Starting activity: Intent { action=android.intent.action.SEND type=jpeg/image flags=0x2800000 comp={com.google.android.gm/com.google.android.gm.ComposeActivity} (has extras) }
D/gmail-ls(  120):      MailProvider.query: content://gmail-ls/labels/me@gmail.com(null, null)
D/Gmail   ( 2507):      URI FOUND:file://sdcard/DumbDumpers/DumbDumper.jpg

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

Кто-нибудь исправил это без волшебных перезагрузок (я уже пробовал)?

С уважением,
Fin

Обновление

Путь для меня должен был быть

file: ///sdcard/DumbDumpers/DumbDumper.jpg

вам нужен дополнительный / , поскольку он указывает на корневой каталог , например:

файл: // + /sdcard/DumbDumpers/DumbDumper.jpg

объединенный как

файл: ///sdcard/DumbDumpers/DumbDumper.jpg

В приведенный выше фрагмент, который вам нужен:

emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ sPhotoFileName));

Надеюсь, это поможет. На отладку у меня ушло время.

С уважением,
Финли

96
ответ дан 24 November 2019 в 13:47
поделиться

Кажется, что это на самом деле корректно, не уверено, что происходило, но после перезагрузки, это начало работать: /

4
ответ дан Chrispix 24 November 2019 в 13:47
поделиться

вместо "Uri.parse" используйте "Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "file name"))"

Environment.getExternalStorageDirectory() - путь к SDcard или любому другому внешнему хранилищу

7
ответ дан 24 November 2019 в 13:47
поделиться

Небольшое замечание с моей стороны. У меня были те же проблемы с GMail, но почему-то кажется, что это работает, когда я сначала сохраняю файл на SD-карте и извлекаю его оттуда, а не из активов. Итак, мой код выглядит следующим образом:

Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra(Intent.EXTRA_SUBJECT, "Title");
i.putExtra(Intent.EXTRA_TEXT, "Content");
i.putExtra(Intent.EXTRA_STREAM, uri);
i.setType("text/plain");
startActivity(Intent.createChooser(i, "Send mail"));

и здесь

uri = Uri.fromFile(new File(context.getFilesDir(), FILENAME));

не работаетне работает, тогда как

uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), FILENAME));

работает.

С уважением, Майкл

21
ответ дан 24 November 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: