1. 设置Intent的action为Intent.ACTION_SEND。
2. 把要分享的数据通过.putExtra()传入intent。
3. 设置类型.setType()。
4.startActivity()。
系统会自动识别出能够兼容接受这些数据,且类型相符合的 activity。如果这些选择有多个,则把这些 activity 显示给用户进行选择。
若要响应其他应用的分享,在AndroidManifest里设置。
5. 如果为intent调用了Intent.createChooser(),那么 Android 总是会显示可供选择。这样有一些好处:
即使用户之前为这个 intent 设置了默认的 action,选择界面还是会被显示。
如果没有匹配的程序,Android 会显示系统信息。
我们可以指定选择界面的标题。
1. 分享文本内容
Intent intent=new Intent(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TEXT,"This is text to send");
intent.setType("text/plain");
startActivity(Intent.createChooser(intent,"share"));
2. 分享二进制内容(如图片等)
Intent intent=new Intent(Intent.ACTION_SEND);
Uri uri=Uri.fromFile(new File("/storage/emulated/0/pictures/123.jpg"));
intent.putExtra(Intent.EXTRA_STREAM,uri);
intent.setType("image/*");
startActivity(Intent.createChooser(intent,"share"));
3. 分享多块内容
ArrayList imageUris = new ArrayList();
Uri imageUri1=Uri.fromFile(new File("/storage/emulated/0/pictures/123.jpg"));
Uri imageUri2=Uri.fromFile(new File("/storage/emulated/0/UCDownloads/pictures/123.jpg"));
imageUris.add(imageUri1);
imageUris.add(imageUri2);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND_MULTIPLE);
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, imageUris);
intent.setType("image/*");
startActivity(Intent.createChooser(intent, "share"));