Android: существует ли универсальный способ отправки MMS на любые устройства Android?
Этот код работает на простых устройствах Google с родной системой Android. Но в списке нет устройств MMS на устройствах HTC Sense, и я не знаю, что такое 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 sense, но не от 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. Это правильный способ поддержки различных типов устройств?
Спасибо за ответы.
3 ответа
Вы можете определить, есть ли ответчик для 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);
Смысл, особенно старые версии, это боль. Там контроль веб-просмотра также имеет кучу проблем. В зависимости от объема сообщений вы можете попробовать использовать веб-сервис, например, простой сервис уведомлений amazon, для отправки смс-сообщений: http://aws.typepad.com/aws/2011/11/amazon-simple-notification-service-now-supports-sms.html Это не решение для Android, но оно может работать.