我只想通过图片附件向 gmail 发送一个意图。以下代码在所有 4.0+ 设备上都能完美运行,但在我的 motorola razr 2.3 上失败。为什么???我如何让它在 4.0 设备以下工作?
我有以下代码:
public class SimpleEmailAttachmentActivity extends Activity {
private static final String sFileName = "myfile.png";
private Bitmap bitmap;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_simple_email_attachment);
    final Button button = (Button) findViewById(R.id.email_snapshot_button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View paramView) {
            View rootView = button.getRootView();
            if(rootView != null) {
                rootView.setDrawingCacheEnabled(true);
                Bitmap drawingCache = rootView.getDrawingCache();
                bitmap = Bitmap.createBitmap(drawingCache);
                rootView.setDrawingCacheEnabled(false);
            }
            saveToInternalStorage(bitmap);
            File file = new File(getFilesDir() + File.separator + sFileName);
            Uri uri = Uri.fromFile(file);
            Intent intent = new Intent(Intent.ACTION_SEND);
            intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"blah@blah.com"});
            intent.putExtra(Intent.EXTRA_SUBJECT, "email subject here");
            intent.putExtra(Intent.EXTRA_TEXT, "email body here");
            intent.putExtra(Intent.EXTRA_STREAM, uri);
            intent.setType("plain/text");
            startActivity(intent);              
        }
        });
    }
private void saveToInternalStorage(Bitmap bitmap){
    FileOutputStream fos;
    try {
        fos = openFileOutput(sFileName, Context.MODE_WORLD_READABLE);
        bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos);
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
}