此代码适用于“地址”和“sms_body”,但不适用于“图像”
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri uri=Uri.parse("file://"+Environment.getExternalStorageDirectory()+"/q.png");
Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra("address","1234567890");
i.putExtra("sms_body","This is the text mms");
i.putExtra(Intent.EXTRA_STREAM,"file:/"+uri);
i.setType("image/png");
startActivity(i);
}
}
有人知道为什么吗?
答案 0 :(得分:2)
您的错误在这里
i.putExtra(Intent.EXTRA_STREAM,"file:/"+uri);
而不是你刚刚将uri传递给
i.putExtra(Intent.EXTRA_STREAM,uri);
尝试这是我的工作。
答案 1 :(得分:2)
首先创建位图
ImageView img_user= (ImageView)findViewById(R.id.img_user);
Bitmap screenshot = Bitmap.createBitmap(img_user.getWidth(),img_user.getHeight(), Bitmap.Config.RGB_565);
img_user.draw(new Canvas(screenshot));
获取图片路径
String path = "file://"+Environment.getExternalStorageDirectory()+"/q.png";
在URI类中使用路径
Uri screenshotUri = Uri.parse(path);
致电意图
Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
emailIntent.setType("image/png");
startActivity(Intent.createChooser(emailIntent, "Send email using"));
答案 2 :(得分:2)
我解决了我的问题。解决方案是使用:
i.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
而不是:
i.putExtra(Intent.EXTRA_STREAM,uri);
我感谢所有想帮助我的人:)。
答案 3 :(得分:1)
您可以看到我的SD卡和图片的所有结构都位于您提到的路径上: