android intent分享第二次,android利用Intent.ACTION_SEND实现分享

提到分享最常用的都是第三方分享,例如盟,ShareSDK等等,当然也用使用微信,qq等官方的SDK分享;最近在项目中使用了系统自带的分享功能,个人感觉要更简单。

先上代码

文本分享

代码如下:

public void shareText() {

Intent sendIntent = new Intent();

ComponentName comp = new ComponentName("目标app包名", "目标app类名");

sendIntent.setComponent(comp);

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.setType("text/plain");

sendIntent.putExtra(Intent.EXTRA_TEXT, "要分享的文本内容");

startActivity(sendIntent);

}

图片分享

代码如下:

public void shareImage() {

ComponentName comp = new ComponentName("目标app包名", "目标app类名");

Intent sendIntent = new Intent();

sendIntent.setComponent(comp);

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.setType("image/*");

sendIntent.putExtra(Intent.EXTRA_STREAM, "图片的uri");

startActivity(sendIntent);

}

首先介绍ComponentName类。 ComponentName与Intent同位于Android.content包下,我们从android官方文档中可以看到,这个类主要用来定义可见一个应用程序组件,例如:Activity,Service,BroadcastReceiver或者ContentProvider。new ComponentName(,);括号内填入目标APP的包名和接收资料的类名 ,那么怎样才能找到它们呢(当然!你可以百度)?,下面介绍我的方法:

Intent it = new Intent(Intent.ACTION_SEND);

it.setType("text/plain");

List resInfo = getPackageManager().queryIntentActivities(it, 0);

if (!resInfo.isEmpty()) {

List targetedShareIntents = new ArrayList();

for (ResolveInfo info : resInfo) {

Intent targeted = new Intent(Intent.ACTION_SEND);

targeted.setType("text/plain");

ActivityInfo activityInfo = info.activityInfo;

}

}

通过getPackageManager().queryIntentActivities(it, 0)我们可以得到当前已安装的所有支持分享的应用的包名和类名;结合前面的方法即可完成分享。

有何不当之处还请各位大神多多指教!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值