Sneha Sneha - 5 months ago 35
Android Question

android.content.ActivityNotFoundException using Intent

I am writing an app in which i am trying to send an email with some data, but whenever i do click on Submit button to send an email, getting : Unfortunately App has Stopped

Error:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND typ=text/plain (has extras) }


Code:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/plain");
String aEmailList[] = { "myaccount@gmail.com" };
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
startActivity(emailIntent);


Logcat:

08-01 08:34:22.518: E/AndroidRuntime(1043): FATAL EXCEPTION: main
08-01 08:34:22.518: E/AndroidRuntime(1043): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO typ=text/plain (has extras) }
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Activity.startActivityForResult(Activity.java:3370)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Activity.startActivityForResult(Activity.java:3331)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Activity.startActivity(Activity.java:3566)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.Activity.startActivity(Activity.java:3534)
08-01 08:34:22.518: E/AndroidRuntime(1043): at app.my.BookAppointmentActivity$6.onClick(BookAppointmentActivity.java:206)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.view.View.performClick(View.java:4204)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.view.View$PerformClick.run(View.java:17355)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.os.Handler.handleCallback(Handler.java:725)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.os.Handler.dispatchMessage(Handler.java:92)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.os.Looper.loop(Looper.java:137)
08-01 08:34:22.518: E/AndroidRuntime(1043): at android.app.ActivityThread.main(ActivityThread.java:5041)
08-01 08:34:22.518: E/AndroidRuntime(1043): at java.lang.reflect.Method.invokeNative(Native Method)
08-01 08:34:22.518: E/AndroidRuntime(1043): at java.lang.reflect.Method.invoke(Method.java:511)
08-01 08:34:22.518: E/AndroidRuntime(1043): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
08-01 08:34:22.518: E/AndroidRuntime(1043): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
08-01 08:34:22.518: E/AndroidRuntime(1043): at dalvik.system.NativeStart.main(Native Method)

Answer

Few months ago i was facing same problem, and i found a small solution, please try below code by replacing yours

Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("plain/text");  
    i.putExtra(Intent.EXTRA_EMAIL, new String[]{"recepient@gmail.com"});
    i.putExtra(Intent.EXTRA_SUBJECT, subject);
    i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
    try {
     startActivity(i);
    } catch (android.content.ActivityNotFoundException ex) {
     Toast.makeText(Activity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
    }
}

If you will get There are no email applications installed. message, it means your work is done and i will suggest you to check it on real DEVICE, but i also don't know how to send it via EMULATOR