Это может быть возможно, но Google позаботился о том, чтобы это было невозможно.
Я потратил пару часов, пытаясь заставить его работать:
- Вытащил Gmail.apk из моего рутированного телефона.
- Декомпилировал его с помощью apktools.
- Перешел через manifest.xml
2 Видимо, для этого полезны действия:
activity android:theme="@android:style/Theme.Light.NoTitleBar"
android:label="@string/activity_conversation"
android:name="HtmlConversationActivity"
android:configChanges="keyboardHidden|orientation"
и
activity android:label="@string/activity_search" android:name="SearchActivity"
У них обоих нет фильтров намерений, поэтому вы не можете их вызвать.
Если вы попробуете, вы получите
Отказ в разрешении: начало намерения = 26043, uid = 10154) требуется ноль
Это может быть возможно при использовании com.google.android.gm.ConversationListActivity.
Но код должен быть запутан, и я не удосужился получить исходный код Gmail.apk, чтобы проверить, какие флаги они используют ...
EDIT:
Хорошо, хорошо, я потрудился проверить это, и достаточно удивительно, что Google не запутал их приложение Gmail :)
Таким образом, я смог получить исходный код APK.
Покопался и вот что нашел ...
Соответствующим действием является ConverstaionListActivity.
В файле Manifest.xml есть этот фильтр намерений:
action android: name = "android.intent.action.SEARCH" />
Когда я проверил код действия, я обнаружил, что есть 3 ожидаемые строки, которые будут получены как дополнительные:
public static final String EXTRA_LABEL = "label";
public static final String EXTRA_SEARCH = "search";
public static final String EXTRA_TITLE = "title";
В любом случае. Строка кнопки, вы не можете открыть конкретный разговор. но вы можете передать поисковый запрос, который будет отображать только ваш конкретный разговор из всех писем пользователя.
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);