Potrebbe essere possibile, ma Google ha fatto in modo che fosse impossibile. Ho trascorso un paio di ore cercando di farlo funzionare:
- tirato il Gmail.apk dal mio telefono radicata.
- Lo ha decompilato usando apktools.
- è andato oltre la manifest.xml
2 attività sembrano essere utile per esso:
attività android: theme = "@ Android: Stile/Theme.Light.NoTitleBar" android: label = "@ string/activity_conversation" android: name = "HtmlConversationActivity" Android: configChanges = "keyboardHidden | orientamento"
e
attività android: label = "@ string/activity_search" android: name = "SearchActivity"
Entrambi non hanno filtri intento per cui non è possibile chiamare. se si tenta otterrete
Permesso Denial: a partire Intent {agire = android.intent.action.VIEW FLG = 0x10000000 CMP = com.google.android.gm/.HtmlConversationActivity} dal ProcessRecord {40b7d248 26043: bobina.gmailresearch/10154} (pid = 26043, uid = 10154) richiede nullo
Potrebbe essere possibile utilizzando il com.google.android.gm.ConversationListActivity. Ma il codice deve essere offuscato e non mi preoccupai di ottenere il codice sorgente del Gmail.apk per verificare che le bandiere usano ...
EDIT: Beh OK mi preoccupai di controllare, e sorprendente abbastanza Google non ha offuscato la loro app Gmail :) Quindi sono stato in grado di ottenere il codice sorgente dell'APK. Ho scavato e questo è quello che ho trovato ...
L'attività rilevante è ConverstaionListActivity.
Nel manifest.XML ha questo filtro intento:
azione androide: name = "android.intent.action.SEARCH" />
Come ho ispezionato il codice per la attività Ho scoperto che ci sono 3 stringhe attese per ottenere come extra:
public static final String EXTRA_LABEL = "label";
public static final String EXTRA_SEARCH = "search";
public static final String EXTRA_TITLE = "title";
In ogni caso. linea del pulsante, non è possibile aprire una conversazione specifica. ma puoi passare una query di ricerca che visualizzerà solo la tua conversazione specifica da tutte le mail che l'utente ha.
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);
questo non sembra funzionare più. Ho appena provato. Qualcuno ha avuto qualche successo con questo? – Enigma
Sì, questo non funziona più ... –