android指定分享到新浪微博

来源于:开源中国http://my.oschina.net/banxi/blog/91383


下面分享一个具体的应用场景:android指定分享到新浪微博

一般的分享我们是这样做的:

private void share() {
	Intent intent = new Intent(Intent.ACTION_SEND);
	intent.setType("text/plain");
	intent.putExtra(Intent.EXTRA_SUBJECT, "分享我的文章");
	intent.putExtra(
			Intent.EXTRA_TEXT,"我刚发表的文章,来看看吧,地址:http://aa.bb.cc/a.html");
	intent.putExtra(Intent.EXTRA_TITLE, "分享我的文章");
	String title = "分享我的文章给好友";

	Intent chooser = Intent.createChooser(intent, title);
	startActivity(chooser);
}

这段代码会弹出一个可以用于分享的选择器,然后选择某一项来分享。

但是我们需要直接分享到新浪微博呢?

首先,我们可以通在安装有新浪微博的设备上运行,

Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    PackageManager pm = getPackageManager();
    List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);

还得到所以可以用于分享的组件,然后不管是通过调试或者打印得出来,某你所想要分享的组件的信息。

如新浪微博的的包名为"com.sina.weibo"

于是可以通过判断包名,来打开指定的分享intent,代码如下:

PackageManager pm = getPackageManager();
		List<ResolveInfo> matches = pm.queryIntentActivities(intent,
				PackageManager.MATCH_DEFAULT_ONLY);
		String packageName = "com.sina.weibo";
		ResolveInfo info = null;
		for (ResolveInfo each : matches) {
			String pkgName = each.activityInfo.applicationInfo.packageName;
			if (packageName.equals(pkgName)) {
				info = each;
				break;
			}
		}
		if (info == null) {
			ToastUtils.showShort(context, "没有找到新浪微博");
			return;
		} else {
			intent.setClassName(packageName, info.activityInfo.name);
		}

		startActivity(intent);


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值