1

描画可能なフォルダーにいくつかの画像があり、それらの画像の int 配列もあります。今、ドローアブルフォルダーから画像を添付してgmail経由でメールを送信しようとしています.Android 2.3ではすべて正常に動作していますが、Android 4.0では画像の拡張子がありません. 解決策が見つかりませんでした。以下は私が使用したコードです。

Uri imageuri  = Uri.parse("android.resource://MyPackageName/" + SplashActivity.mBitmap_mixed_images[int_image_position]);

            Intent intent = new Intent(Intent.ACTION_SEND); 

               if(imageuri != null){
                intent.putExtra(Intent.EXTRA_STREAM, imageuri);
                intent.putExtra(Intent.EXTRA_SUBJECT, "150+ Reasons to Quit Smoking");
                //intent.putExtra(Intent.EXTRA_TEXT, "www.selftalk.info");
                intent.setType("image/html");
               }else{
                intent.setType("plain/text");
               }
               final PackageManager pm = getPackageManager();
                final List<ResolveInfo> matches = pm.queryIntentActivities(intent, 0);
                ResolveInfo best = null;
                for (final ResolveInfo info : matches)
                  if (info.activityInfo.packageName.endsWith(".gm") ||
                      info.activityInfo.name.toLowerCase().contains("gmail")) best = info;
                if (best != null)
                  intent.setClassName(best.activityInfo.packageName, best.activityInfo.name);
                startActivity(intent);
4

1 に答える 1

3
private FileOutputStream outStream; 
private File file;
Bitmap bm = BitmapFactory.decodeResource( getResources(), R.drawable.ic_launcher);
        String extStorageDirectory = Environment.getExternalStorageDirectory().toString();

    file = new File(extStorageDirectory, "ic_launcher.PNG");
    try {
        outStream = new FileOutputStream(file);
        bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
        outStream.flush();
        outStream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

email = new Intent(Intent.ACTION_SEND);
email.setType("application/octet-stream");
email.putExtra(Intent.EXTRA_EMAIL, new String[] { "" });
email.putExtra(Intent.EXTRA_SUBJECT, "My Subject");
email.putExtra(Intent.EXTRA_TEXT, "");
email.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(Intent.createChooser(email, "Choose an Email client :"));
于 2013-08-09T09:47:24.773 に答える