Sending Simple Data to Other Apps

本文介绍了如何在Android应用中使用Intent发送文本和图片。通过设置ACTION_SEND或ACTION_SEND_MULTIPLE,可以实现不同应用程序间的数据共享。文章还详细解释了如何指定数据类型以及如何创建供用户选择分享方式的对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当构建一个Intent,必须制定一个action来触发其他action。你可以指定Intent 携带数据的类型。


Send Text Content


可以用ACTION_SEND将text 内容从一个activity 发送到另外一个activity。
下面这个子类中用ACTION_SEND 触发动作,用setType来指定类型,用putExtra来携带数据.
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);
如果已安装的application中intent_filter中有指定action为ACTION_SEND且MIMT type 为text/plain的话,Android系统就会启动这个application。如果有多于一个application 符合条件的话,系统会显示一个chooser的对话框让用户选择.
你也可以主动调用Intent.createChooser 来主动显示一个chooser对话框.这样走有三个好处,1,及时用于已经选择默认的application,还是会再提示chooser 让用户选择,2如果没有application 匹配的话,系统会显示一个系统对话框。3,你可以指定chooser的title.


一下是一个例子。
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)));


Send Binary Content
和text一样,只要将putExtra的第一个参数由Intent.EXTRA_TEXT换成Intent.EXTRA_STREAM就行.
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)));
接收uriToImage的application 要有访问uriToImage的权限,所以一般用ContentProvide或者MediaStore来保存数据.




可以通过下面的方式一次发送多个数据。
特别注意setAction(Intent.ACTION_SEND_MULTIPLE);
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.."));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值