Android: Есть ли универсальный способ отправки MMS на любые устройства Android?

Этот код работает на простых устройствах google с собственной системой Android. Но в приложении на htc-устройствах нет приложения MMS, и я не знаю о Motorola Blur и т. Д .:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); emailIntent.setType("image/png"); emailIntent.putExtra(Intent.EXTRA_STREAM, uri); context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_intent_name))); 

Этот код работает в смысле htc, но не от Chooser, что мне действительно нужно:

  Intent sendIntent = new Intent("android.intent.action.SEND_MSG"); sendIntent.putExtra(Intent.EXTRA_STREAM, uri); sendIntent.setType("image/png"); context.startActivity(sendIntent); 

Но я не знаю, как объединить эти образцы кода вместе, и я не знаю, как определить Htc Sense ui программно. Правильно ли он поддерживает различные типы устройств?

Спасибо за ответы.

Solutions Collecting From Web of "Android: Есть ли универсальный способ отправки MMS на любые устройства Android?"

Смысл, особенно старые версии – это боль. Там контроль веб-просмотра также имеет множество проблем. В зависимости от объема сообщений вы можете попробовать воспользоваться веб-сервисом, например простой службой уведомлений amazon, для отправки sms-сообщений: http://aws.typepad.com/aws/2011/11/amazon-simple-notification-service-now-supports-sms .html Это не решение для Android, но это может сработать.

Вы можете определить, есть ли ответчик для HTC Intent, а затем ответ:

 intent = new Intent("android.intent.action.SEND_MSG"); intent.putExtra(Intent.EXTRA_STREAM, uri); intent.setType("image/png"); resolves = getActivity().getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); if (resolves.size() > 0) { // This branch is followed only for HTC context.startActivity(intent); } else { // Else launch the non-HTC sense Intent intent = new Intent(android.content.Intent.ACTION_SEND); intent.setType("image/png"); intent.putExtra(Intent.EXTRA_STREAM, uri); context.startActivity(Intent.createChooser(intent, context.getString(R.string.send_intent_name))); } 

Вы можете использовать его следующим образом:

 Intent i = new Intent(Intent.ACTION_SEND); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); i.setType("video/3gp"); i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + attachmentFilePath)); startActivity(i);