начать смс Activity @ ConversarionList.class из моего собственного приложения - PullRequest
5 голосов
/ 03 июня 2010

Я провел исследование и обнаружил, что множество людей запускают приложение sms с намерения. Дело в том, что люди обычно делают это только для исходящих сообщений.

В настоящее время я показываю счетчик непрочитанных SMS-сообщений в моем приложении, но, похоже, я не могу понять, как это работает.

При каждой попытке я получаю один и тот же результат, запускает приложение, но для нового смс ...

Мое нынешнее намерение выглядит так

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("sms:"));
startActivity(intent);

и это результат:

Форма для отправки смс Android http://img291.imageshack.us/img291/1330/22012196.png

  • РЕДАКТИРОВАТЬ: Para -> To
  • Escribeir mensaje -> Написать сообщение
  • Enviar -> Отправить

Надеюсь, я достаточно ясно об этом.

Вопрос:

Как я могу зайти в почтовый ящик приложения смс на андроид через Intent?


РЕДАКТИРОВАТЬ: Я просто хочу повторить это:

startActivity(new Intent(this, ConversationList.class));

Из которого я взял: http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @ ЛИНИЯ: 2028

В моем собственном приложении. Но я не могу заставить его работать.

Ответы [ 3 ]

2 голосов
/ 07 июня 2010

Что такое SetClassName?

Чтобы запустить класс, расположенный вне текущего приложения, нам нужно объявить что-то вроде «Полный путь» к нему ...

Чтобы открытьПриложение смс по умолчанию @ConversationList нам нужно сделать это:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.android.mms", "com.android.mms.ui.ConversationList");

Источник:

1 голос
/ 04 июня 2010
  1. Сначала просмотрите различные варианты намерений и вариантов ланча. Вы можете увидеть мой ответ на похожий вопрос . Ваш код будет вызывать что-то с помощью StartActivityForResult (). Что это сложный вопрос.

  2. Если вам повезет, вы можете найти ИНТЕНТ в приложении для обмена сообщениями о статусе. Вы, вероятно, не будете, так как нет гарантии, что телефон будет использовать систему по умолчанию. В конце концов, когда получено SMS, оно помещается в некоторую базу данных сообщений и является «новым» только в соответствии с логикой приложений обмена сообщениями. По причинам безопасности эта база данных не является общей. Возможно, вы захотите прокомментировать этот запрос функции .

  3. Вы можете написать свое собственное приложение, которое захватывает намерение «новое SMS» и затем отправляет его вперед, возможно. Посмотрите этот несколько старый учебник .

Удачи! Дайте нам знать, если вы добьетесь прогресса.

0 голосов
/ 12 марта 2012

Intent smsIntent = новое намерение (Intent.ACTION_VIEW);

smsIntent.setType ( "vnd.android-Dir / ммс-СМС");

smsIntent.putExtra ("address", "12125551212");

smsIntent.putExtra ("sms_body", "Тело сообщения");

startActivity (smsIntent);

...