Поэтому возникает вопрос: есть ли простой и единообразный фрагмент кода, который позволяет отправлять MMS с вложением vCard?
аюсь найти способ отправить MMS-сообщение, содержащееПриложение vCard, Я думал, что это будет довольно простой задачей, но мне так и не удалось придумать что-то, что просто работает на самых разных телефонах Android.
Первое, что я попробовал, было это:
Определите намерение, показывающее список приложений, способных отправлять визитную карточку
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/x-vcard");
i.putExtra(Intent.EXTRA_TEXT,"MMS with vCard");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse (someFilereference);
startActivity(Intent.createChooser(i, "Select MMS application."));
При использовании этого я заметил следующее:
НаSamsung Galaxy S, выбор позволил мне выбрать Bluetooth, Gmailи приложение обмена сообщениями, При использовании приложения «Сообщения» вложение и текст присутствовали, и я мог отправить MMS. Я обработал MMS на старом телефоне Sony Ericson (до Android), и vCard была обработана нормально.НаGoogle Nexus S а такжеMotorola DroidXВыбор позволил мне выбрать только Bluetooth и Gmail. (приложение обмена сообщениями отсутствовало в списке выбора).(Мой вывод). Похоже, что в Android нет стандартного приложения, которое способно удовлетворить намерение, указанное здесь. (ни одно приложение не позволяет использовать текст / x-vcard mimeType). Galaxy S поставляется с собственным приложением для обмена сообщениями, которое способно обрабатывать vime mimetype.
Это все очень хорошо, но как нам поступить и решить это?
Я попробовал следующий подход:
Запустите намерение обмена сообщениями напрямую, указав класс
Intent intent = new Intent(Intent.ACTION_SEND);
i.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity");
i.setType("text/x-vcard");
i.putExtra("sms_body", "SomeText");
i.putExtra(Intent.EXTRA_STREAM, Uri.parse (someFileRef);
startActivity(i);
Используя этот код, приложение для обмена сообщениями запускается напрямую. Этот подход был выбран, поскольку он по крайней мере позволяет нам выложить приложение обмена сообщениями на Nexus S (до этого с приложением выбора не было приложения обмена сообщениями).
НаSamsung Galaxy S, вложение добавляется на экран создания MMS и отправляется правильно. НаGoogle Nexcus S, вложения нет.
При удалении mimeType из Intent приложение Messaging выскакиваетНеподдерживаемый тип носителя сообщение об ошибке.
Поэтому возникает вопрос: есть ли простой и единообразный фрагмент кода, который позволяет отправлять MMS с вложением vCard?