Использование намерения MMS с файлом изображения - PullRequest
0 голосов
/ 30 декабря 2010

Поэтому я пытаюсь вызвать намерение, которое прикрепит изображение к текстовому сообщению. Следующий код правильно отображает окно текстового сообщения с изображением на эмуляторе, но на моем телефоне (Droid X) произошел сбой.

            String name = FILE_NAME;

            Uri uri = Uri.fromFile(new File(name));

            Intent intent = new Intent(Intent.ACTION_SEND); 
            intent.setClassName("com.android.mms", "com.android.mms.ui.ComposeMessageActivity"); 
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.setType("image/png"); 
            startActivity(intent); 

.

12-30 12:56:50.628: ERROR/AndroidRuntime(14603): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms/com.android.mms.ui.ComposeMessageActivity}; have you declared this activity in your AndroidManifest.xml?

Проблема в строке .setClassName. Я жестко закодировал значение для класса, что, вероятно, неправильно. Что я должен использовать здесь для поддержки всех телефонов?

Спасибо всем.

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Не устанавливать имя класса вообще.Это приведет к тому, что Android найдет для вас наилучшее возможное действие, при необходимости запустив диалоговое окно выбора приложения.

Альтернативой может быть решение всех возможных действий для цели и использование некоторой логики, чтобы определить, какое из них вы предпочитаетеи по умолчанию позволить Android выбирать, если ваша логика не может выбрать один.Хотя это немного излишне, и если ваша цель - просто позволить пользователю отправить MMS, такой уровень детализации не нужен.

0 голосов
/ 20 июля 2016

sendIntent.setPackage ("com.android.mms");

, который решит вашу проблему

...