2010-06-03 7 views
5

Ich habe meine Forschung getan und fand viele Leute starten die SMS-Anwendung aus einer Absicht, Die Sache ist, dass Menschen neigen dazu, dies nur für ausgehende Nachrichten tun.starten SMS Aktivität @ ConversarionList.class aus meiner eigenen App

Ich zeige gerade eine ungelesene Sms-Zählung auf meiner App, aber es scheint, dass ich nicht die richtige Absicht zu arbeiten bekomme.

Auf jeder versuche ich das gleiche Ergebnis zu erhalten, ist es die App startet, sondern für eine neue sms ...

Meine aktuelle Absicht wie diese

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

aussieht und es ist Ergebnis ist:

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

  • EDIT: Para -> An
  • Escribir mensaje -> Nachricht verfassen
  • Enviar -> Senden

Ich hoffe, ich bin klar genug darüber.

Die Frage ist:

Wie kann ich gehen in den Posteingang der SMS-Anwendung auf Android über eine Absicht?


EDIT: ich dies nur wollen, replizieren:

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

Wich Ich nahm ab: http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028

Auf meiner eigenen App. Aber ich kann es nicht zur Arbeit bringen.

Antwort

2

Was ist SetClassName?

Um eine Klasse zu starten, die sich außerhalb der aktuellen Anwendung befindet, müssen wir etwas wie einen "Full Path" deklarieren ...

Um die Standard-SMS-Anwendung @ConversationList wir dies tun müssen, zu öffnen:

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

Quelle:

1
  1. Zuerst, über die verschiedenen Absicht und Lanch Optionen. Sie können meine Antwort auf eine similar question sehen. Ihr Code wird etwas mit einem StartActivityForResult() aufrufen. Was das ist eine schwierigere Frage.

  2. Wenn Sie Glück haben, können Sie eine INTENT aus der Messaging-Anwendung für den Status finden. Sie werden es wahrscheinlich nicht tun, da es keine Garantie gibt, dass das Telefon den Systemstandard verwendet. Immer wenn eine SMS empfangen wird, wird sie in irgendeine Messaging-Datenbank eingegeben und ist nur gemß der Messaging-Anwendungslogik "neu". Diese Datenbank wird aus Sicherheitsgründen nicht freigegeben. Vielleicht möchten Sie dies zu kommentieren feature request.

  3. Sie können Ihre eigene Anwendung schreiben, die die 'neue SMS'-Absicht erfasst und sie dann vielleicht weiterleitet. Siehe hierzu somewhat old tutorial.

Viel Glück! Lassen Sie uns wissen, wenn Sie Fortschritte machen.

+0

Ich glaube, wir reden hier über zwei verschiedene Dinge. Ich möchte nur dies replizieren: startActivity (neue Absicht (this, ConversationList.class)); Weiche Ich nahm ab: http://www.google.com/codesearch/p?hl=en#dpDz7Q08o9c/src/com/android/mms/ui/ComposeMessageActivity.java @LINE: 2028 Auf meiner eigenen App . Aber ich kann es nicht zur Arbeit bringen. Danke in fortgeschrittenem. –

+0

Entschuldigung, ich verstehe deine Frage nicht. –

+0

Ich habe eine App gemacht, die dem Benutzer die Anzahl der ungelesenen SMS zeigt. Meine Idee ist es, diesen Zähler mit der Standard-SMS-Anwendung zu verknüpfen. Das Problem ist: Ich kann nicht die Standard-SMS-Anwendung bei der ConversationList-Aktivität starten. PS: Die ConversationList-Aktivität ist der Hauptbildschirm der Standard-SMS-Anwendung. –

-2

Intent smsIntent = new Absicht (Intent.ACTION_VIEW);

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

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

smsIntent.putExtra ("sms_body", "Nachrichtentext");

startActivity (smsIntent);

Verwandte Themen