Android: регистрация Intent Filter для открытия вложения электронной почты с моим приложением

У меня есть приложение, которое генерирует пользовательские типы файлов (.sor). Внутри приложения у меня есть возможность отправить электронное письмо с одним из прикрепленных файлов. У меня также есть фильтр намерений, позволяющий приложению отображаться в списке приложений, которые могут открывать файлы этого типа. Это позволяет мне (иногда) открывать файл с приложением прямо из почтового клиента пользователя на телефоне.

Однако это работает только тогда, когда электронная почта поступает от почтового клиента ПК, и не будет работать, когда электронная почта получена с телефона. Например, если я сгенерирую один из этих файлов .sor, а затем с помощью своего приложения отправлю электронное письмо на свою учетную запись электронной почты, я получу письмо на свой телефон, но не смогу открыть вложение с моим приложением ... НО , если я отправлю электронное письмо на ту же учетную запись и открою его на своем компьютере (с Thunderbird) вместо телефона, а затем переадресую его или отправлю как новое электронное письмо на мой телефон, я смогу использовать то же самое приложение электронной почты на телефоне, чтобы открыть вложение с моим приложением ... ЯЯ говорю только об одной учетной записи электронной почты, единственная разница в том, откуда было отправлено письмо: мой телефон или мой компьютер с Windows 7.

Единственное, о чем я могу подумать, это то, что когда я отправляю электронное письмо с телефона, во вложенный файл внедряется другой тип пантомимы, чем когда я отправляю его из Thunderbird на моем компьютере ... я указываю тип пантомимы как "Применение / октет-поток» когда я отправляю письмо из моего приложения, и у меня есть фильтр намерений, который ищет этот тип MIME ... но он не работает правильно.

Мой фильтр намерений:


  
  
  
  

Намерение, которое я передаю почтовому клиенту телефона при отправке файла во вложении электронной почты с телефона:

Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.setType("application/octet-stream");
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + fullPathString));
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "FiberDroid OTDR Trace File: \"" + ContextMenuFileName + "\"");
sendIntent.putExtra(Intent.EXTRA_TEXT, "This e-mail was sent from the TTI FiberDroid Android application.");
startActivity(Intent.createChooser(sendIntent, "Select E-Mail Application"));

Опять же, отправка электронного письма с прикрепленным файлом работает правильно ... и если я отправлю этот же файл обратно на телефон с помощью почтового клиента на ПК (например, Outlook или Thunderbird), я смогу открыть файл с помощью своего приложения. прямо из приложения электронной почты телефонов. Проблема в том, что если я открою письмо на телефоне, не пройдя через компьютер в качестве посредника, я не смогу открыть вложение, единственная опция, которую мне дают, - этоСохранить на SD-карту "...

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

Есть идеи? Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос