发送彩信(无法加载图片)

时间:2013-12-25 09:50:51

标签: android mms

此代码适用于“地址”和“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);

    }   
}

有人知道为什么吗?

4 个答案:

答案 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卡和图片的所有结构都位于您提到的路径上: DDMS show file location