Enviar um MMS com um anexo vCard em dispositivos Android

Estou tentando encontrar uma maneira de enviar uma mensagem MMS contendo umvCard attachment. Achei que seria uma tarefa bastante fácil, mas ainda não consegui encontrar algo que funcione em uma ampla variedade de telefones Androi

A primeira coisa que tentei foi esta:

Defina uma intenção mostrando uma lista de aplicativos capazes de enviar o vCard

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."));

Ao usar isso, observei o seguinte:

Com umSamsung Galaxy S, o seletor me permitiu escolher Bluetooth, Gmaile o aplicativo Messaging. Ao usar o aplicativo Messaging, o anexo e o texto estavam presentes e eu poderia enviar o MMS. Eu processei o MMS em um telefone antigo Sony Ericson (pré-android) e o vCard foi processado corretamentCom umGoogle Nexus S eMotorola DroidX, o seletor só me permitiu escolher Bluetooth e Gmail. o aplicativo Messaging estava ausente no seletor).

(Minha conclusão): parece que o Android não vem com um aplicativo padrão capaz de satisfazer a intenção especificada aqui. (nenhum aplicativo permite com o texto / x-vcard mimeType). O Galaxy S vem com seu próprio aplicativo de mensagens, capaz de lidar com o tipo de mim vcar

Está tudo muito bem, mas como resolvemos isso?

Tentei a seguinte abordagem:

Lance a intenção do sistema de mensagens diretamente, especificando a classe

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); 

Usando esse código, o aplicativo de mensagens é iniciado diretamente. Essa abordagem foi escolhida, pois pelo menos nos permite exibir um aplicativo de mensagens no Nexus S (antes, com o seletor, o aplicativo de mensagens não estava presente

NoSamsung Galaxy S, o anexo é adicionado à tela de composição do MMS e enviado corretamente. NoGoogle Nexcus S, o anexo não está presente.

Ao remover o mimeType do Intent, o aplicativo Messaging exibe um Tipo de mídia não suportado mensagem de erro

Então, a pergunta é: existe um código simples e uniforme que permita enviar um MMS com um anexo vCard?

questionAnswers(0)

yourAnswerToTheQuestion