2010-06-03 3 views
5

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

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

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

Моей текущей цели выглядит следующим образом

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

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

Android sms Aplication form http://img291.imageshack.us/img291/1330/22012196.png

  • EDIT: Para -> Для
  • Escribir Mensaje -> Написать сообщение
  • Enviar -> Отправить

Я надеюсь, что я достаточно ясно говорит об этом.

Возникает вопрос:

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


EDIT: Я просто хочу, чтобы повторить это:

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

Wich я взял из: http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028

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

ответ

2

Что такое 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
  1. Во-первых, рассмотрите различные варианты намерения и залога. Вы можете увидеть мой ответ на similar question. Ваш код вызовет что-то с помощью StartActivityForResult(). Это сложный вопрос.

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

  3. Вы можете написать собственное приложение, которое захватывает намерение «нового SMS» и отправляет его вперед, может быть. См. Это somewhat old tutorial.

Удачи вам! Сообщите нам, если вы достигнете прогресса.

+0

Я считаю, что мы говорим о двух разных вещах. Я просто хочу повторить это: startActivity (новый Intent (this, ConversationList.class)); Я получил от: http://www.google.com/codesearch/p?hl=ru#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028 В моем собственном приложении , Но я не могу заставить его работать. Спасибо, продвинутый. –

+0

Извините, я не могу понять ваш вопрос. –

+0

Я сделал приложение, которое показывает пользователю количество непрочитанных смс. Моя идея - «связать», что противоречит стандартным sms-приложением. Проблема заключается в следующем: я не могу заставить приложение sms по умолчанию начинать с активности ConversationList. PS: Активность ConversationList является основным экраном приложения sms по умолчанию. –

-2

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

smsIntent.setType ("vnd.android-dir/mms-sms");

smsIntent.putExtra ("адрес", "12125551212");

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

startActivity (smsIntent);

Смежные вопросы