博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sending Simple Data to Other Apps
阅读量:4212 次
发布时间:2019-05-26

本文共 1861 字,大约阅读时间需要 6 分钟。

当构建一个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.."));

转载地址:http://mvcmi.baihongyu.com/

你可能感兴趣的文章
S3C2440上touchscreen触摸屏驱动
查看>>
USB History Viewing
查看>>
怎样做可靠的分布式锁,Redlock 真的可行么?
查看>>
[图文] Seata AT 模式分布式事务源码分析
查看>>
pm 源码分析
查看>>
Sending the User to Another App
查看>>
kmsg_dump
查看>>
Getting a Result from an Activity
查看>>
Allowing Other Apps to Start Your Activity
查看>>
dev/mem
查看>>
pfn_valid 源码分析
查看>>
dev/kmem 和dev/mem的区别
查看>>
checkbox
查看>>
Sending Simple Data to Other Apps
查看>>
Receiving Simple Data from Other Apps
查看>>
中断API之__tasklet_schedule
查看>>
中断API之enable_irq
查看>>
中断API之disable_irq
查看>>
nova 中的guestfs
查看>>
nova中的localfs
查看>>