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?