如何将图像和文本一起发送到其他应用程序?

时间:2013-01-25 15:10:07

标签: android android-intent

我有两个应用:App1拍摄一张图片并将其分配到一个地址(拍摄照片的地方),另一个应用App2从{获取图像和文字(地址) {1}}。当用户点击App1中的按钮时,我必须将此图片和文字传递给App1

到目前为止,我可以使用App2成功将图片发送到App2。我该如何发送文字和图像?

我已经看过这个Android教程:http://developer.android.com/training/sharing/send.html#send-multiple-content

但它谈到发送多个图像,而不是发送图像和文本。

2 个答案:

答案 0 :(得分:1)

您可以尝试制作一个Parcelable对象来保存文本和图像并发送它。 对于Parcelable,请查看http://developer.android.com/reference/android/os/Parcelable.html

MyObject obj = new MyObject();
obj.text = "some text";
obj.image = imageUri;

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putExtras("MyObj", obj);
startActivity(Intent.createChooser(shareIntent, "Share images to.."));

public class MyObject implements Parcelable{
private String image;
private String text;
public void setImage(String _image){
image = _image;
}
public void setText(String _text){
text = _text;
}
public String getImage(){
return image;
}
public String getText(){
return text;
}
public MyObject(Parcel in) {
        readFromParcel(in);
    }
@Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {

        dest.writeString(image);
        dest.writeString(text);
    }
private void readFromParcel(Parcel in) {

        image = in.readString();
        text = in.readString();
    }
public static final Parcelable.Creator CREATOR =
        new Parcelable.Creator() {
            public MyObject createFromParcel(Parcel in) {
                return new MyObject(in);
            }

            public MyObject[] newArray(int size) {
                return new MyObject[size];
            }
        };

}

答案 1 :(得分:1)

您可以通过为文字添加putExtra来使用您发布的样本:

ArrayList<Uri> imageUris = new ArrayList<Uri>();
imageUris.add(imageUri1); // Add your image URIs here
imageUris.add(imageUri2);

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
shareIntent.setType("image/*");

现在您可以添加:

shareIntent.putExtra("yourkey", "yourtext");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));