0

assestフォルダの画像をメールに添付してメールを送信しようとしたら、メールは正常に送信されたのですが、確認するとメールに画像が添付されていませんでした、これが私のコードで、

Uri uri = Uri.fromFile(new File("file:///android_asset/Hat_5.png"));

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setType("image/png");
intent.putExtra(Intent.EXTRA_EMAIL  , new String[] { "some@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "New Order");
intent.putExtra(Intent.EXTRA_TEXT   , "Order Id :" +imageId);
intent.putExtra(Intent.EXTRA_STREAM  , uri);
startActivity(Intent.createChooser(intent, "Send mail..."));

許可、

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
4

2 に答える 2

0

必要に応じてこれを行うことができます

String FILENAME = "avatar.png";
        FileOutputStream fos = null;

    try {

        fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);

    } catch (FileNotFoundException e1) {

        e1.printStackTrace();
        Log.v("","FileNotFoundException: "+e1.getMessage());

    }

    try {
        InputStream inputStream = getAssets().open("avatar.jpg");


        byte buf[]=new byte[1024];
        int len;
        while((len=inputStream.read(buf))>0)
            fos.write(buf,0,len);
        fos.close();
        inputStream.close();

    } catch (IOException e1) {

        e1.printStackTrace();
        Log.v("","IOException: "+e1.getMessage());

    }

    // Get the file from internal storage

    String filePath = getApplicationContext().getFilesDir().getAbsolutePath();//returns current directory.
    File file = new File(filePath, FILENAME);

それから

Uri uri = Uri.fromFile(file);
intent.putExtra(Intent.EXTRA_STREAM  , uri);

添付ファイルを送信して...

于 2012-10-02T10:25:04.323 に答える
0

SDCARD からのみファイルを添付できます。イメージを SDCARD にコピーし、URI を SD カード上のファイルのパスに変更する必要があります。後で削除することもできます。

于 2012-10-02T10:10:24.587 に答える