android Sending Content to Other Apps[ 发送分享的数据到其他App]

1.Send Text Content [分享文本数据]

最常用的是通过ACTION_SEND从一个Activity发送文本内容到另外一个Activity。一段示例Code:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
但一般为了能总是显示 选择界面对话框 和 给选择对话框指定标题,需要为intent调用Intent.createChooser()

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));

  • 效果图如下:
android Sending Content to Other Apps[ 发送分享的数据到其他App]_第1张图片

2.Send Binary Content  [分享二进制数据]

分享二进制数据需要结合设置适当的MIME Type,需要在EXTRA_STREAM里面放置数据的URI,下面是个分享图片的例子,这个例子也可以修改用来分享任何类型的二进制数据:
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
shareIntent.setType("image/jpeg");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));


3.Send Multiple Pieces of Content [分享多条数据内容]

分享多种不同类型的数据内容,需要使用ACTION_SEND_MULTIPLE和提供数据的URIs列表。MIME类型会根据你分享的混合内容而不同。例如,如果你分享3张JPEG格式的图片,那么MIME类型仍然是“image/jpeg”。如果是不同图片格式的话,应该是用“image/*”来匹配那些可以接收任何图片类型的activity。如果你需要分享多种不同类型的数据,可以使用“*/*”来表示MIME。像前面描述的那样,这取决于那些接收的程序解析并处理你的数据。一个例子:

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/*");
startActivity(Intent.createChooser(shareIntent, "Share images to.."));
注意:请确保提供的URIs能够被接收程序所访问(访问权限的问题)。
详细官方文档:http://developer.android.com/training/sharing/send.html#send-text-content


你可能感兴趣的:(android Sending Content to Other Apps[ 发送分享的数据到其他App])