2010-08-28 2 views
6

Ich versuche, eine einzelne E-Mail in der Gmail App auf Android zu öffnen.So öffnen Sie eine bestimmte Nachricht/Konversation in der Gmail-App

Ich weiß, es kann getan werden, weil die integrierten Benachrichtigungen Sie zu einer Nachricht senden, wenn Sie darauf klicken und es gibt eine App auf dem Markt namens Gmail Notifier, die es auch tut.

Was ich bisher versucht:

-send eine ACTION_VIEW Absicht mit der Meldung URI als Daten (fehlgeschlagen - nicht auflösen kann URI)

eine Absicht -send HtmlConversationActivity in der Google Mail-Paket zu öffnen (failed - "erfordert Erlaubnis: null")

Wäre es hilfreich, Flaggen oder eine Kategorie zu der Absicht hinzuzufügen? Wenn ja, welche)?

Ich weiß, dass die Google Mail-App nicht gut dokumentiert ist, aber es macht mich wahnsinnig, dass es definitiv einen Weg gibt, es zu tun, und ich kann es einfach nicht herausfinden!

P.S .: Dies ist das erste Mal, dass ich auf Stackoverflow poste, also entschuldige ich mich im Voraus, wenn ich irgendwelche Konventionen ignoriert habe.

Antwort

8

Es könnte möglich sein, aber Google hat sichergestellt, dass es unmöglich sein wird. verbrachte ich ein paar Stunden damit es funktioniert:

  1. die Gmail.apk von meinem verwurzelt Telefon Gezogen.
  2. Decompiled es mit apktools.
  3. über die manifest.xml Went

2 Aktivitäten scheinen für sie nützlich zu sein:

Aktivität android: theme = "@ android: style/Theme.Light.NoTitleBar" android: label = "@ Zeichenfolge/activity_conversation" android: name = "HtmlConversationActivity" android: configChanges = "keyboardHidden | Orientierung"

und

Aktivität android: label = "@ Zeichenfolge/activity_search" android: name = "SearchActivity"

Beide haben keine Absicht, Filter, so dass Sie sie nicht aufrufen können. Wenn Sie versuchen, Sie

Permission Denial bekommen: Intent Start {act = android.intent.action.VIEW flg = 0x10000000 cmp = com.google.android.gm/.HtmlConversationActivity} von {ProcessRecord 40b7d248 26043: Spule.gmailresearch/10154} (pid = 26043, uid = 10154) erfordert null

es möglich sein könnte, die com.google.android.gm.ConversationListActivity verwenden. Aber der Code muss verschleiert werden und ich nicht die Mühe, den Quellcode des Gmail.apk zu erhalten, auf die Fahnen sie

EDIT ... zu überprüfen: Nun OK ich es überprüfen störte, und überraschend genug Google hat ihre Google Mail-App nicht verschleiert :) So konnte ich den Quellcode der APK bekommen. Hat etwas graben und das ist, was ich gefunden habe ...

Die relevante Aktivität ist ConvertaionListActivity.

Im Manifest.xml es diese Absicht Filter hat:

Aktion android: name = "android.intent.action.SEARCH" />

Als ich den Code für die inspizierte Aktivität Ich fand heraus, dass es 3 erwartete Zeichenfolge als extra erhalten:

Wie auch immer. In der Schaltflächenzeile können Sie keine bestimmte Konversation öffnen. Sie können jedoch eine Suchanfrage übergeben, die nur Ihre spezifische Konversation aus allen E-Mails des Benutzers anzeigt.

Intent mailClient = new Intent(Intent.ACTION_SEARCH); mailClient.setClassName("com.google.android.gm", "com.google.android.gm.ConversationListActivity"); mailClient.putExtra("query", "15 Apps for Programming");
startActivity(mailClient);

+2

das scheint nicht mehr zu funktionieren. Ich habe es versucht. Hat jemand damit Erfolg gehabt? – Enigma

+0

Ja Das geht nicht mehr ... –

1

Ich versuche programmgesteuert eine einzelne E-Mail in der Google Mail App auf Android zu öffnen.

Es gibt keine dokumentierten und unterstützten Intents für die Arbeit mit der Gmail-Anwendung. Entwickler sollten nicht eng in diese Anwendung integriert sein - wenn Google eine solche Integration wollte, würden sie diese Integration dokumentieren und unterstützen, so wie sie es mit Kontakten getan haben.

+3

Ich wusste, dass du das sagen würde, aber wenn ich wollte eine Firma, mir sagen, was ich tun werde erlaubt, ich Apps für iPhone machen würde! Mein Punkt ist, dass es getan werden kann und es wäre toll zu wissen, wie. Ich bin bereit, das Risiko einzugehen, dass meine App eines Tages nicht mehr funktioniert und mein Einkommen aus dieser bestimmten App auf null fällt (ich verkaufe mehr als eine App). – katzoft

+0

hey @CommonsWare, ich weiß, das ist sehr alter thread, Aber gibt es sowieso offen Absicht einer bestimmten Nachricht jetzt-a-Tage. –

+0

@NiteshSingh: Da ich nicht weiß, wie Ihre App eine Kennung für eine bestimmte E-Mail-Nachricht haben würde, kann ich das nicht beantworten. – CommonsWare

Verwandte Themen