2013-01-15 11 views
6

Ich versuche, das Bild geklickt durch meine Anwendung als Anhang per E-Mail senden. Das Bild ist angeklickt und ich bekomme den Pfad korrekt, aber die Anwendung wirft mir eine Laufzeit Ausnahme. "Keine Aktivität gefunden, um Intent zu behandeln". Ich teste das auf meinem Gerät und ich habe mein Google Mail-Konto konfiguriert. Ich bin mir nicht sicher, wie ich das lösen soll. Bitte helfen Sie.Keine Aktivität gefunden Absicht beim Senden von E-Mails zu behandeln

Dies ist mein Code:

public static void sendEmail(Context context, String[] recipientList, String title, String subject, String body) { 

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:[email protected]")); 
     intent.setType("plain/text"); 
     intent.putExtra(android.content.Intent.EXTRA_EMAIL, recipientList); 
     intent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
     intent.putExtra(android.content.Intent.EXTRA_TEXT, body); 
     intent.putExtra(Intent.EXTRA_STREAM, capturedImageFilePath); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     context.startActivity(intent); 

} 

Und das ist das Protokoll:

01-15 11:26:04.455: E/AndroidRuntime(9904): FATAL EXCEPTION: main 
01-15 11:26:04.455: E/AndroidRuntime(9904): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO typ=plain/text flg=0x10000000 (has extras) } 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512) 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384) 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at android.app.ContextImpl.startActivity(ContextImpl.java:852) 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at android.content.ContextWrapper.startActivity(ContextWrapper.java:276) 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at com.example.attachmail.AttchmentActivity.sendEmail(AttchmentActivity.java:133) 
01-15 11:26:04.455: E/AndroidRuntime(9904):  at com.example.attachmail.AttchmentActivity$2.onClick(AttchmentActivity.java:93) 
+0

Versuchen Sie, das Flag "Intent.FLAG_DEBUG_LOG_RESOLUTION" hinzuzufügen. Es könnte Ihnen helfen, es herauszufinden. – kichik

+0

Versucht Intent.FLAG_DEBUG_LOG_RESOLUTION wirft mir die folgende Ausnahme :: Aufruf von startActivity() von außerhalb eines Aktivitätskontexts erfordert das Flag FLAG_ACTIVITY_NEW_TASK. Ist das wirklich was du willst? – Nisha

Antwort

1

Versuchen Sie, den folgenden Code E-Mail zu senden.

    Intent sendIntent = new Intent(Intent.ACTION_SEND); 

        sendIntent.setType("message/rfc822"); 
        sendIntent.putExtra(Intent.EXTRA_SUBJECT, subject); 
        sendIntent.putExtra(Intent.EXTRA_STREAM,Uri.parse(path)); 

        sendIntent.putExtra(Intent.EXTRA_TEXT, body); 
        startActivity(Intent.createChooser(sendIntent, "Email:")) 
+0

public static void sendEmail (Kontextkontext, String [] recipientList, String title, String subject, String body) { \t \t Absicht intent = new Intent (Intent.ACTION_SEND); \t \t intent.setType ("nachricht/rfc822"); \t \t intent.putExtra (android.content.Intent.EXTRA_EMAIL, recipientList); \t \t intent.putExtra (android.content.Intent.EXTRA_SUBJECT, Betreff); \t \t Absicht.putExtra (android.content.Intent.EXTRA_TEXT, Körper); \t \t intent.putExtra (Intent.EXTRA_STREAM, capturedImageFilePath); \t \t intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); \t \t context.startActivity (Intent.createChooser (intent, "Email:")); \t} – Nisha

+0

der obige Code löst diese Ausnahme aus: android.util.AndroidRuntimeException: Aufruf von startActivity() von außerhalb eines Aktivitätskontextes erfordert das Flag FLAG_ACTIVITY_NEW_TASK. Ist das wirklich was du willst? Ich verstehe nicht, dass ich diese Flagge schon gesetzt habe. – Nisha

+0

verwenden Sie einfach startActivity (Intent.createChooser (sendIntent, "Email:") in der letzten Zeile. – Priya

0

Ich denke, das Problem Sie konfrontiert sind wegen der MIME-Typ, den Sie festgelegt haben, ist „plain/text“ und die Flagge, die Sie i.e.FLAG ACTIVITY NEW TASK eingestellt haben.

Hier ist etwas, das Ihnen helfen kann. Probieren Sie this Link oder this Link.

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 
//  emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, emailSignature); 
     emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, toSenders); 
     emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subjectText); 
     emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, messageText+"\n\n"+emailSignature); 

     emailIntent.setType("image/jpeg"); 
     File bitmapFile = new File(Environment.getExternalStorageDirectory()+ 
      "/"+FOLDER_NAME+"/picture.jpg"); 
     myUri = Uri.fromFile(bitmapFile); 
     emailIntent.putExtra(Intent.EXTRA_STREAM, myUri); 
+0

Ich habe den Typ in image/jpeg geändert und das Flag entfernt. Aber es wirft diese Ausnahme auf: Aufruf von startActivity() von außerhalb eines Aktivitätskontexts erfordert das FLAG_ACTIVITY_NEW_TASK Flag. Ist das wirklich was du willst? Also habe ich die Flagge wieder gesetzt und habe versucht, nur den Inhaltstyp zu ändern, jetzt bin ich wieder bei der alten konnte Ausnahme nicht finden. – Nisha

+0

Versuchen Sie "Text/plain" und lassen Sie mich wissen, was passiert :) – AndroidLearner

+0

Ich habe das zunächst versucht. Ohne die Flagge wirft es mir die Context-Flag-Ausnahme ab und mit der Flag, die es wirft, konnte ich keine Intent-Exception finden. :(:(:(: – Nisha

0

Entfernen Sie einfach diese Zeile aus dem Code

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

& dann erneut versuchen.

+0

Das Entfernen dieses Flags löst diese Ausnahme aus: Aufruf von startActivity() von außerhalb eines Aktivitätskontexts erfordert das Flag FLAG_ACTIVITY_NEW_TASK Wirklich, was Sie wollen? – Nisha

0

Geändert Intent.ACTION_SENDTO zu Intent.ACTION_SEND. Ich wollte nicht die anderen Optionen senden wie Bluetooth und all das ist, warum ich schrieb senden an..aber konnte es nicht funktionieren. Also habe ich es endlich zum Senden geändert und es funktioniert jetzt ganz gut. Keine Ahnung, was genau das Problem war.

11

Ich hatte ein ähnliches Problem, ich habe die Parameter einer Funktion übergeben, die die E-Mail mit einer Absicht sendet. Allerdings merke ich, dass die ich brauche die Linie intent.setData (Uri uri), und wenn der E-Mail-Parameter nur dann braucht es eine E-Mail wurde verwenden, um mit zu sein „mailto:“ text Beispiel:

intent.setData(Uri.parse("mailto:"+email)); 

wie hier :

Intent intent = new Intent(Intent.ACTION_SENDTO); 
        intent.setType("message/rfc822"); 
        intent.putExtra(Intent.EXTRA_EMAIL, email); 
        intent.setData(Uri.parse("mailto:"+email)); 
        intent.putExtra(Intent.EXTRA_SUBJECT, emailSubject); 
        intent.putExtra(Intent.EXTRA_TEXT, emailContent); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        intent.addFlags(Intent.FLAG_FROM_BACKGROUND); 
       try { 

        startActivity(intent); 
       } catch (android.content.ActivityNotFoundException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
        Log.d("Email error:",e.toString()); 
       } 

Wenn Sie es auf einem Emulator könnte es ein Problem mit „Sharing“ sein apps nicht konfiguriert, so dass entweder stellen Sie sicher, testen es auf dem Emulator zu setzen oder es auf einem Gerät zu testen.

+0

Das sieht nicht wie eine Lösung für mich aus, ich bekomme immer noch die gleichen Fehler. –

+0

Welchen Fehler erhalten Sie? –

+0

'android.content.ActivityNotFoundException: Keine Aktivität gefunden Intent zu behandeln {act = android. intent.action.SENDTO ... ' –

Verwandte Themen