Подтвердить что ты не робот

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, но не от 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 программно. Правильно ли он поддерживает различные типы устройств?

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

4b9b3361

Ответ 1

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

Ответ 2

Вы можете определить, есть ли ответчик для 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)));    
}

Ответ 3

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

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