Mã này sẽ trực tiếp bắt đầu gmail ứng dụng để gửi email.
tôi phát hiện ra sử dụng this post rằng phần quan trọng ở đây là để tìm "tên gói" và "activityInfo.name"
tôi muốn chỉ sử dụng gmail mà không có một tính năng chọn. Lưu ý rằng tên gói được mã hóa cứng vì vậy nếu Gmail thay đổi tên gói của nó, nó sẽ không hoạt động nữa.
Chìa khóa cho điều này là setComponent trong đó thông số đầu tiên là tên gói và tham số thứ hai là tên activityInfo.
Nhưng như tôi đã nói một cách thận trọng, tôi tự nhắc lại; nếu người dùng không cài đặt ứng dụng gmail hoặc gmail thay đổi tên gói hoặc tên Activty để gửi email, mã (cứng) này sẽ bị hỏng. Thy đã được cảnh báo;)
Đây là mã của tôi
Intent myIntent = new Intent(Intent.ACTION_SEND);
PackageManager pm = getPackageManager();
Intent tempIntent = new Intent(Intent.ACTION_SEND);
tempIntent.setType("*/*");
List<ResolveInfo> resInfo = pm.queryIntentActivities(tempIntent, 0);
for (int i = 0; i < resInfo.size(); i++) {
ResolveInfo ri = resInfo.get(i);
if (ri.activityInfo.packageName.contains("android.gm")) {
myIntent.setComponent(new ComponentName(ri.activityInfo.packageName, ri.activityInfo.name));
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
myIntent.setType("message/rfc822");
myIntent.putExtra(Intent.EXTRA_TEXT, "extra text");
myIntent.putExtra(Intent.EXTRA_SUBJECT, "Extra subject");
myIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("uri://your/uri/string");
}
}
startActivity(myIntent);
Không, tôi đã không cố gắng này được nêu ra. Nhưng tôi chắc chắn sẽ. Cảm ơn vì đã giúp Jeff. – Aakash
văn bản/tác phẩm đơn giản – Aakash
cảm ơn liên kết cũng –