我只想通过图片附件向 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();
}
}
}