ActivityNotFoundException при отправке электронной почты из приложения

Я написал код, в котором я разрешаю пользователю отправлять заказ по электронной почте поставщику [ShopOwner] вместе со своими персональными данными и деталями корзины, но здесь я получаю

ошибка: к сожалению приложение остановлено

Logcat:

01-30 17:56:14.605: E/AndroidRuntime(951): FATAL EXCEPTION: main
01-30 17:56:14.605: E/AndroidRuntime(951): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND typ=text/html flg=0x1 (has clip) (has extras) }
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivityForResult(Activity.java:3370)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivityForResult(Activity.java:3331)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivity(Activity.java:3566)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivity(Activity.java:3534)
01-30 17:56:14.605: E/AndroidRuntime(951):  at com.version.bajrang.january.menu.ArrowsActivity$1.onClick(ArrowsActivity.java:105)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.view.View.performClick(View.java:4202)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.view.View$PerformClick.run(View.java:17340)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Handler.handleCallback(Handler.java:725)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Handler.dispatchMessage(Handler.java:92)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Looper.loop(Looper.java:137)
01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.ActivityThread.main(ActivityThread.java:5039)
01-30 17:56:14.605: E/AndroidRuntime(951):  at java.lang.reflect.Method.invokeNative(Native Method)
01-30 17:56:14.605: E/AndroidRuntime(951):  at java.lang.reflect.Method.invoke(Method.java:511)
01-30 17:56:14.605: E/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
01-30 17:56:14.605: E/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
01-30 17:56:14.605: E/AndroidRuntime(951):  at dalvik.system.NativeStart.main(Native Method)

код:

Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
String aEmailList[] = { "[email protected]" };   
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
messageIntent.setType("text/html");
messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
startActivity(messageIntent);

Наконец, с помощью SahilMahajanMj, я использовал этот код с небольшим изменением:

 Intent i = new Intent(Intent.ACTION_SEND);
 i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"[email protected]om"});
 i.putExtra(Intent.EXTRA_SUBJECT, subject);
 i.setType("message/rfc822");
 i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));

try {
    startActivity(Intent.createChooser(i, "Send email via :"));
    Toast.makeText(ArrowsActivity.this, "Email Sent.", Toast.LENGTH_SHORT).show();
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(ArrowsActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
}

В ViewCartActivity.java

public void onClick(View v) {
    // TODO Auto-generated method stub

        Intent mViewCartIntent = new Intent(ViewCartActivity.this, com.version.bajrang.january.menu.ArrowsActivity.class);
        mViewCartIntent.putExtra("name", myTextVeiwGrandTotal.getText().toString());
        startActivity(mViewCartIntent);

            }
        });

В ArrowsActivity.java:

TextView txtName = (TextView) findViewById(R.id.total);
Intent i = getIntent();
String name = i.getStringExtra("name");
txtName.setText(name);

Я использую код выше, чтобы получить общее количество продуктов в корзине, и я тоже могу получить и показать, но здесь общее количество предметов в корзине я также хочу показать на вкладке в корзине, например:

https://play.google.com/store/apps/details?id=com.queppelin.tastykhana

они показали 2 красным цветом...

Ответ 1

Сообщение об ошибке показывает:

ActivityNotFoundException: для управления Intent не найдено действий { act = android.intent.action.SEND typ = text/html flg = 0x1 (имеет клип) (имеет дополнительные функции)}

Это означает, что система Android не обнаруживает никакой активности отправки электронной почты для обработки созданного вами намерения. Убедитесь, что на вашем устройстве установлено приложение электронной почты.

Также используйте следующий код для отправки электронной почты,

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"[email protected]"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail"));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
}

Ответ 2

Rakesh извините за поздний ответ, с 10 утра я пытался решить вашу проблему, и я несколько раз пробовал и, наконец, под кодом работал:

Я знал, что у тебя есть ответ, но я дал много часов для моего удовлетворения. Я размещаю свой ответ здесь, а брат мне не нужны баллы за это, потому что @SahilMahajanMj заслуживают этого:

  Intent i = new Intent(Intent.ACTION_SEND);
        i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"[email protected]"});
        i.putExtra(Intent.EXTRA_SUBJECT, subject);
        i.setType("message/rfc822");
        i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));

        try {
            startActivity(Intent.createChooser(i, "Send email via :"));
            } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(ArrowsActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
        }

Ответ 3

Возникает проблема с android.content, которую вы передаете с помощью putExtras.

попробуйте что-то вроде ниже:

public Intent sendMail1() {
        Intent messageIntent = new Intent(Intent.ACTION_SEND);

        String aEmailList[] = { "[email protected]" };
        messageIntent.putExtra(Intent.EXTRA_EMAIL, aEmailList);

        messageIntent.putExtra(Intent.EXTRA_SUBJECT, subject);

        messageIntent.setType("text/html");
        messageIntent.putExtra(Intent.EXTRA_TEXT,
                Html.fromHtml(body.toString()));

        return messageIntent;
    }

Огоньте свое намерение как:

startActivity(Intent.createChooser(sendMail1(), "send mail"));