Поэтому возникает вопрос: есть ли простой и единообразный фрагмент кода, который позволяет отправлять 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?

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

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