I’m trying to send an e-mail from my Android App. With the click on a button, gmail should open and show a new email with my previously defined recipient, subject and email body. So far I’ve tried sending the Intent.ACTION_VIEW as well as Intent.ACTION_SENDTO. Both show my draft with the recipient only. Both subject and message are being opressed. Weird thing is when using the emulator, it works just fine. Also was trying to lock at the android errorlog. Seems like i don’t have permission. Is it really a permission problem or could it be something else? I’d really appreciate any help cheers
Here is my code:
- sending email via ACTION_VIEW
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("mailto:" + to)); intent.putExtra(intent.EXTRA_SUBJECT, subject); intent.putExtra(intent.EXTRA_TEXT, message); mainActivity.startActivity(intent);
- sending email via ACTION_SENDTO
Intent email = new Intent(Intent.ACTION_SENDTO); email.setType("message/rfc822"); email.putExtra(Intent.EXTRA_EMAIL, new String[]{to}); email.putExtra(Intent.EXTRA_SUBJECT, subject); email.putExtra(Intent.EXTRA_TEXT, message); mainActivity.startActivity(Intent.createChooser(email, "Choose an Email client :"));
- error message from logcat
2019-12-13 01:30:35.172 29268-29268/? E//system/bin/webview_zygote32: failed to make and chown /acct/uid_99044: Permission denied 2019-12-13 01:30:35.172 29268-29268/? E/Zygote: createProcessGroup(99044, 0) failed: Permission denied 2019-12-13 01:30:35.206 29289-29289/? E/asset: setgid: Operation not permitted 2019-12-13 01:30:35.226 29296-29296/? E/asset: setgid: Operation not permitted 2019-12-13 01:30:35.355 29268-29268/? E/Typeface: Error mapping font file /system/fonts/NotoSansKhmer-Regular.ttf 2019-12-13 01:30:35.356 29268-29268/? E/Typeface: Error mapping font file /system/fonts/NotoSansKhmer-Bold.ttf 2019-12-13 01:30:35.356 29268-29268/? E/Minikin: Could not get cmap table size! 2019-12-13 01:30:35.356 29268-29268/? E/Typeface: Unable to load Family: null:und-Khmr 2019-12-13 01:30:35.484 29268-29268/? E/Typeface: Error mapping font file /system/fonts/LGAka_Light.ttf 2019-12-13 01:30:35.484 29268-29268/? E/Minikin: Could not get cmap table size! 2019-12-13 01:30:35.484 29268-29268/? E/Typeface: Unable to load Family: lg-lgaka:null 2019-12-13 01:30:35.816 29342-29342/? E//system/bin/webview_zygote32: failed to make and chown /acct/uid_99045: Permission denied 2019-12-13 01:30:35.816 29342-29342/? E/Zygote: createProcessGroup(99045, 0) failed: Permission denied 2019-12-13 01:30:35.842 29354-29354/? E/asset: setgid: Operation not permitted 2019-12-13 01:30:35.864 29367-29367/? E/asset: setgid: Operation not permitted 2019-12-13 01:30:36.139 29342-29342/? E/Typeface: Error mapping font file /system/fonts/NotoSansKhmer-Regular.ttf 2019-12-13 01:30:36.139 29342-29342/? E/Typeface: Error mapping font file /system/fonts/NotoSansKhmer-Bold.ttf 2019-12-13 01:30:36.139 29342-29342/? E/Minikin: Could not get cmap table size! 2019-12-13 01:30:36.139 29342-29342/? E/Typeface: Unable to load Family: null:und-Khmr 2019-12-13 01:30:36.362 29342-29342/? E/Typeface: Error mapping font file /system/fonts/LGAka_Light.ttf 2019-12-13 01:30:36.362 29342-29342/? E/Minikin: Could not get cmap table size! 2019-12-13 01:30:36.362 29342-29342/? E/Typeface: Unable to load Family: lg-lgaka:null 2019-12-13 01:30:36.523 4349-4359/? E/GBMv2: FPS Scaler: EXP 2019-12-13 01:30:36.602 29342-29342/? E/WebViewFactory: can't load with relro file; address space not reserved 2019-12-13 01:30:37.058 29220-29220/? E/Gmail: Gmail:EditWebView JS Console: b/119949571:draft.editor.onLoad; source: file:///android_asset/draft_editor_gmail_compiled.js at 89 2019-12-13 01:30:37.146 29220-29220/? E/Gmail: Gmail:EditWebView JS Console: b/119949571:draft.editor.onLoad is finished; source: file:///android_asset/draft_editor_gmail_compiled.js at 90
Advertisement
Answer
try out this code, it worked for me.
Intent intent = new Intent(Intent.ACTION_SENDTO); intent.setData(Uri.parse("mailto:")); // only email apps should handle this intent.putExtra(Intent.EXTRA_EMAIL, new String[]{email}); intent.putExtra(Intent.EXTRA_SUBJECT, "Subject here"); intent.putExtra(Intent.EXTRA_TEXT,"Body Here"); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); }
also add intent filter in android manifest.
<activity ...> <intent-filter> <action android:name="android.intent.action.SENDTO" /> <data android:scheme="mailto" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>