У меня есть действие FeedbackActivity.java
, которое принимает ответ от пользователя с несколькими вложениями (до 3 изображений в качестве вложений).
Я использую следующий код:
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("message/rfc822");
intent.putExtra(Intent.EXTRA_EMAIL, emails); //emails is an Array of 'String' type
intent.putExtra(Intent.EXTRA_SUBJECT, subject); //subject is a String
intent.putExtra(Intent.EXTRA_TEXT, text) //text is a String
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); //uris is an ArrayList of 'Uri' type
//uris stores all Uri of images selected
if(intent.resolveActivity(getPackageManager()) != null){
startActivity(intent);
}
else {
Toast.makeText(this, "Not Good", Toast.LENGTH_SHORT).show();
}
Теперь этот код работает нормально, но проблема в том, что он показывает все виды приложений, которые поддерживают MIME-тип "message / rfc822".
Изображение показано ниже:
Мне нужно только показать приложения почтового клиента, я пробовал Uri.parse ("mailto:"), но не тренировался, и код всегда перемещается в оператор else и показывает тост "не хорошо".
Я прочитал документацию Google, но она показывает только простые случаи. Я пытался искать в Интернете. Многие разработчики используют intent.setType("*/*")
или intent.setType("text/plain")
. Но они также показывают приложения, отличные от почтовых клиентов.
Пожалуйста, ведите меня.
И я хотел бы спросить в целом:
Документация Google показывает простые примеры, которые хороши в некотором смысле, но как по-настоящему углубленно изучить такие темы?
Спасибо.