2017-10-20 13 views
2

電子メールメッセージに画像を添付しようとしていますが、ローカル電子メールクライアントが開いても添付されません。コード名1:電子メールメッセージへの画像の添付に失敗する

Gmailクライアントには、ファイルが添付されません。というメッセージが表示されます。

Yahooの電子メールクライアントには警告は表示されませんが、画像は添付されません。

私はAndroid 7.0搭載のLenovo K6デバイスを使ってテストしています。同様に、「画像/ JPEG」を試してみました

Message m = new Message(content); 
m.getAttachments().put(imgUri, "image/png"); 

が、無駄に:

これは私が電子メールメッセージに画像を添付するために使用するコードです。 URIは次のようになります

ファイル:

file:///storage/emulated/0/DCIM/Camera/IMG_20171015_170852.jpg 

は私もFileSystemManager.getInstance().getAppHomePath() 下の位置に画像を移動しようとしたが、それはまだ動作しませんでした。

キャプチャオブジェクトを使用して新しいイメージを作成する場合や、既存のイメージをギャラリーに追加する場合でも、結果は同じです。しかし、電子メールクライアントの内部から画像を手動で添付すると、すべてが期待通りに機能します。

Androidログはそれほど役に立ちません。

10-20 12:14:15.695 32049 32049 E Gmailの場合:エラーの追加添付ファイル

10-20 12:14:15.695 32049 32049 E Gmailの:DSH:ローカル添付ファイルに

の作成に失敗しました。 10-20 12:14:15.695 32049 32049 EのGmail:dsi.aで(SOURCEFILE:132)

10-20 12:14:15.695 32049 32049 EのGmail:cmd.aで(SOURCEFILE:1840)

10-20 12:14:15.695 32049 32049 E Gmail:at cmp.run(Sou rceFile:4)

10-20 12:14:15.695 32049 32049 EのGmail:cmd.aで(SOURCEFILE:665)

10-20 12:14:15.695 32049 32049 EのGmail:CMDで。 (SOURCEFILE:422)

10-20 12:14:15.695 32049 32049 EのGmail:cmd.Nで(SOURCEFILE:536)

10-20 12:14:15.695 32049 32049 E Gmailの:でcmd.onCreate(SourceFile:181)

10-20 12:14:15.695 32049 32049 E Gmail:com.google.android.gm.ComposeActivityGmail.onCreate(SourceFile:4) 0)

私はオプションが不足しています。 アドバイスをお願いします。

+0

「m」とは何ですか? – greenapps

+0

mはcodenameoneメッセージオブジェクトです。元の投稿を編集してそれを明確にしました。 –

+0

urisをfile:// schema – Selvin

答えて

3

誤って添付ファイルを追加しています。getAttachments()は、添付ファイルを追加する最良の方法ではなく、既存のファイルURIとMIMEタイプのペアを返すために使用されます。 URIのパスを確認し、また、

m.setAttachment(imgUri); 
m.setAttachmentMimeType(Message.MIME_IMAGE_PNG); 

を、私はこのfile:///を見ることができたとして、それは正しいです確認してください。

これを試してみてください。

あなたのアプリのホームディレクトリにファイルを置くことをお勧めします。

+0

パスに何が間違っているかわかりません。あなたのものはOPのものと同じです。 – greenapps

+1

私はm.getAttachments()を使っています。put(imgUri、 "image/png");これは文書化されているからです:https://www.codenameone.com/javadoc/com/codename1/messaging/Message.html –

+1

これはうまくいきました。ただし、添付ファイルを追加したい場合は、各setAttachment/setAttachmentMimeTypeの後にm.getAttachments()を呼び出す必要があります。そうしないと、以前の追加を上書きするだけです。本当に添付ファイルを追加する非常に特殊な方法です。 –

0
Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "attachment"); 
i.putExtra(Intent.EXTRA_TEXT , "PFA"); 
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(destinationFile));//image file 

startActivity(Intent.createChooser(i, "Send mail...")); 
+0

あなたが何を言おうとしているかははっきりしていません。詳しく教えてください。 – greenapps

+1

これは添付ファイル付きの電子メールを送信するためのAndroidネイティブコードです。 – Diamond

関連する問題