Android第三期 - sharesdk社会化分享组件

网站分享比较简单的一句js就可以了,但是手机就没有这么简单了,要有点小复杂,刚学Android两个月了,也再用第三方的Android开发组件,现在介绍给大家sharesdk。直接上代码!!

第一步:下载ShareSDK

官网 http://share.sharesdk.cn/Download

第二步:集成ShareSDK

进入ShareSDK解压目录,打开“Share SDK for Android”目录,可以找到“QuickIntegrater.jar”,这个就是快速集成ShareSDK的工具

Windows下

首先确定已经安装了JDK,并且正确配置了JAVA_HOME和PATH系统变量,此时可以双击QuickIntegrater启动程序

Linux/Mac OS下

同样需要先确保已经正确配置了JDK,之后启动终端,cd进入“Share SDK for Android”目录,输入: java -jar QuickIntegrater.jar 可启动QuickIntegrater

正确输入项目的名称和包名,勾选需要的集成的平台,然后点击“确定”。QuickIntegrater会自行产生一个目录,复制此目录中的文件到您的项目中覆盖即可。

第三步:配置AndroidManifest.xml

1、添加权限

<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
2、添加activity信息
<activity
  android:name="cn.sharesdk.framework.ShareSDKUIShell"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:configChanges="keyboardHidden|orientation|screenSize"
  android:screenOrientation="portrait"
  android:windowSoftInputMode="stateHidden|adjustResize" >
   <intent-filter>
        <data android:scheme="tencent100371282" />
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.BROWSABLE" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
3、如果您集成了微信或者易信,还需要添加下面两个Activity
<!--微信分享回调 -->
<activity
  android:name=".wxapi.WXEntryActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:configChanges="keyboardHidden|orientation|screenSize"
  android:exported="true"
  android:screenOrientation="portrait" />

<!--易信分享回调 -->
<activity
  android:name=".yxapi.YXEntryActivity"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:configChanges="keyboardHidden|orientation|screenSize"
  android:exported="true"
  android:screenOrientation="portrait" />

第四步:添加分享代码

在您的代码中调用此方法,即可打开一键分享功能进行分享

   Private void showShare() {
        ShareSDK.initSDK(this);
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();
        
        // 分享时Notification的图标和文字
        oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
        // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
        oks.setTitle(getString(R.string.share));
        // titleUrl是标题的网络链接,仅在人人网和QQ空间使用
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本,所有平台都需要这个字段
        oks.setText("我是分享文本");
        // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
        oks.setImagePath("/sdcard/test.jpg");
        // url仅在微信(包括好友和朋友圈)中使用
        oks.setUrl("http://sharesdk.cn");
        // comment是我对这条分享的评论,仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称,仅在QQ空间使用
        oks.setSite(getString(R.string.app_name));
        // siteUrl是分享此内容的网站地址,仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");

        // 启动分享GUI
        oks.show(this);
   }

我给大家写了一个demo,官网的demo功能太多了,像我一样的初学估计看起来会有点吃力,我把里面简单的拆分开来,这样大家会有一个清晰的思路。

将定制的导入自己的项目后,然后写MainActivity部分:

package com.share;

import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView shareall;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// showShare();
		shareall = (TextView) findViewById(R.id.shareall);
		shareall.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				showShare();
			}
		});
	}

	private void showShare() {
		ShareSDK.initSDK(this);
		OnekeyShare oks = new OnekeyShare();
		// 关闭sso授权
		oks.disableSSOWhenAuthorize();

		// 分享时Notification的图标和文字
		oks.setNotification(R.drawable.ic_launcher, getString(R.string.ctone));
		// title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间使用
		oks.setTitle(getString(R.string.share));
		// titleUrl是标题的网络链接,仅在人人网和QQ空间使用
		oks.setTitleUrl("http://www.ctone.net/");
		// text是分享文本,所有平台都需要这个字段
		oks.setText("精彩无限,融通未来。 ----郑州ctone科技,官网http://www.ctone.net/");
		// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
		//oks.setImagePath("http://img0.bdstatic.com/img/image/shouye/muzrxc1.jpg");
		// url仅在微信(包括好友和朋友圈)中使用
		oks.setUrl("http://www.ctone.net/");
		// comment是我对这条分享的评论,仅在人人网和QQ空间使用
		oks.setComment("亲,留个言吧!");
		// site是分享此内容的网站名称,仅在QQ空间使用
		oks.setSite(getString(R.string.ctone));
		// siteUrl是分享此内容的网站地址,仅在QQ空间使用
		oks.setSiteUrl("http://www.ctone.net/");

		// 启动分享GUI
		oks.show(this);
	}

}

activitymain.xml部分:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" 
    android:background="@color/white">

    <TextView
        android:id="@+id/shareall"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:text="@string/hello_world" />

</RelativeLayout>

assets部分:share.xml

<?xml version="1.0" encoding="utf-8"?>
<DevInfor>
    <!--
    	说明:
    
    	1、表格中的第一项
    		<ShareSDK 
        		AppKey="api20" />
    	是必须的,其中的AppKey是您在ShareSDK上注册的开发者帐号的AppKey
    
    	2、所有集成到您项目的平台都应该为其在表格中填写相对应的开发者信息,以新浪微博为例:
    	    <SinaWeibo
                Id="1"
                SortId="1"
                AppKey="568898243"
                AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
                RedirectUrl="http://www.sharesdk.cn"
                Enable="true" />
    	其中的SortId是此平台在分享列表中的位置,由开发者自行定义,可以是任何整型数字,数值越大
    	越靠后AppKey、AppSecret和RedirectUrl是您在新浪微博上注册开发者信息和应用后得到的信息
    	Id是一个保留的识别符,整型,ShareSDK不使用此字段,供您在自己的项目中当作平台的识别符。
    	Enable字段表示此平台是否有效,布尔值,默认为true,如果Enable为false,即便平台的jar包
    	已经添加到应用中,平台实例依然不可获取。
    
    	各个平台注册应用信息的地址如下:
			新浪微博                 http://open.weibo.com
			腾讯微博                 http://dev.t.qq.com
			QQ空间                      http://connect.qq.com/intro/login/
			微信好友                 http://open.weixin.qq.com
			Facebook      https://developers.facebook.com
			Twitter       https://dev.twitter.com
			人人网                      http://dev.renren.com
			开心网                      http://open.kaixin001.com
			搜狐微博                 http://open.t.sohu.com
			网易微博                 http://open.t.163.com
			豆瓣                           http://developers.douban.com
			有道云笔记            http://note.youdao.com/open/developguide.html#app
			印象笔记                 https://dev.evernote.com/
			Linkedin      https://www.linkedin.com/secure/developer?newapp=
			FourSquare    https://developer.foursquare.com/
			搜狐随身看            https://open.sohu.com/
			Flickr        http://www.flickr.com/services/
			Pinterest     http://developers.pinterest.com/
			Tumblr        http://www.tumblr.com/developers
			Dropbox       https://www.dropbox.com/developers
			Instagram     http://instagram.com/developer#
			VKontakte     http://vk.com/dev
    -->
    
    <ShareSDK 
        AppKey = "androidv1101"/> <!-- 修改成你在sharesdk后台注册的应用的appkey"-->
    
    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
    <SinaWeibo
        Id="1"
        SortId="1"
        AppKey="568898243"
        AppSecret="38a4f8204cc784f81f9f0daaf31e02e3"
        RedirectUrl="http://www.sharesdk.cn"
        ShareByAppClient="true"
        Enable="true" />

    <TencentWeibo
        Id="2" 
        SortId="2"
        AppKey="801307650"
        AppSecret="ae36f4ee3946e1cbb98d6965b0b2ff5c"
        RedirectUri="http://sharesdk.cn"
        Enable="true" />

    <!-- ShareByAppClient标识是否使用微博客户端分享,默认是false -->
    <QZone
        Id="3"
        SortId="3"
        AppId="100371282"
        AppKey="aed9b0303e3ed1e27bae87c33761161d"
        ShareByAppClient="true"
        Enable="true" />
    
    <!-- 
    	Wechat微信和WechatMoments微信朋友圈的appid是一样的;
    
                       注意:开发者不能用我们这两个平台的appid,否则分享不了
    
       	  微信测试的时候,微信测试需要先签名打包出apk,
		sample测试微信,要先签名打包,keystore在sample项目中,密码123456

		BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
		审核的应用也可以执行分享,但是仅限于分享文字和图片,不能分享其他类型,
		默认值为false。此外,微信收藏不支持此字段。
	-->
    <Wechat
        Id="4"
        SortId="4"
        AppId="wx4868b35061f87885"
        BypassApproval="true"
        Enable="true" />
    
    <WechatMoments
        Id="5"
        SortId="5"
        AppId="wx4868b35061f87885"
        BypassApproval="true"
        Enable="true" />
        
	<WechatFavorite
        Id="6"
        SortId="6"
        AppId="wx4868b35061f87885"
        Enable="true" />
    
	<QQ
        Id="7"
        SortId="7"
        AppId="100371282"
        AppKey="aed9b0303e3ed1e27bae87c33761161d"
        Enable="true" />
    
    <Facebook
        Id="8"
        SortId="8"
        ConsumerKey="107704292745179"
        ConsumerSecret="38053202e1a5fe26c80c753071f0b573"
        Enable="true" />

    <Twitter
        Id="9"
        SortId="9"
        ConsumerKey="mnTGqtXk0TYMXYTN7qUxg"
        ConsumerSecret="ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"
        CallbackUrl="http://www.sharesdk.cn"
        Enable="true" />

    <Renren
        Id="10"
        SortId="10"
        AppId="226427"
        ApiKey="fc5b8aed373c4c27a05b712acba0f8c3"
        SecretKey="f29df781abdd4f49beca5a2194676ca4"
        Enable="true" />
    
    <KaiXin
        Id="11"
        SortId="11"
        AppKey="358443394194887cee81ff5890870c7c"
        AppSecret="da32179d859c016169f66d90b6db2a23"
        RedirectUri="http://www.sharesdk.cn"
        Enable="true" />
    
    <Email
        Id="12" 
        SortId="12"
        Enable="true" />
    
    <ShortMessage
        Id="13" 
        SortId="13"
        Enable="true" />
    
    <SohuMicroBlog
        Id="14"
        SortId="14"
        ApiKey="q70QBQM9T0COxzYpGLj9"
        ConsumerKey="q70QBQM9T0COxzYpGLj9"
        ConsumerSecret="XXYrx%QXbS!uA^m2$8TaD4T1HQoRPUH0gaG2BgBd"
        CallbackUrl="http://www.sharesdk.cn"
        Enable="true" />

    <NetEaseMicroBlog
        Id="15"
        SortId="15"
        ConsumerKey="T5EI7BXe13vfyDuy"
        ConsumerSecret="gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"
        RedirectUri="http://www.shareSDK.cn"
        Enable="true" />
    
    <Douban
        Id="16"
        SortId="16"
        ApiKey="02e2cbe5ca06de5908a863b15e149b0b"
        Secret="9f1e7b4f71304f2f"
        RedirectUri="http://www.sharesdk.cn"
        Enable="true" />
    
    <YouDao
        Id="17"
        SortId="17"
        HostType="product"
        ConsumerKey="dcde25dca105bcc36884ed4534dab940"
        ConsumerSecret="d98217b4020e7f1874263795f44838fe"
        RedirectUri="http://www.sharesdk.cn"
        Enable="true" />
        
	<SohuSuishenkan
        Id="18"
        SortId="18"
        AppKey="e16680a815134504b746c86e08a19db0"
        AppSecret="b8eec53707c3976efc91614dd16ef81c"
        RedirectUri="http://sharesdk.cn"
        Enable="true" />
        
    <!-- 
    	在中国大陆,印象笔记有两个服务器,一个是沙箱(sandbox),一个是生产服务器(china)。
    	一般你注册应用,它会先让你使用sandbox,当你完成测试以后,可以到
    	http://dev.yinxiang.com/support/上激活你的ConsumerKey,激活成功后,修改HostType
    	为china就好了。至于如果您申请的是国际版的印象笔记(Evernote),则其生产服务器类型为
    	“product”。
    
    	如果目标设备上已经安装了印象笔记客户端,ShareSDK允许应用调用本地API来完成分享,但
    	是需要将应用信息中的“ShareByAppClient”设置为true,此字段默认值为false。
    -->
    <Evernote
        Id="19"
        SortId="19"
        HostType="sandbox"
    	ConsumerKey="sharesdk-7807"
		ConsumerSecret="d05bf86993836004"
		ShareByAppClient="false"
		Enable="true" />
    
    <LinkedIn
    	Id="20"
        SortId="20"
        ApiKey="ejo5ibkye3vo"
        SecretKey="cC7B2jpxITqPLZ5M" 
        RedirectUrl="http://sharesdk.cn"
        Enable="true" />
    
     <GooglePlus
    	Id="21"
        SortId="21"
        Enable="true" />
     
     <FourSquare
    	Id="22"
        SortId="22"
        ClientID="G0ZI20FM30SJAJTX2RIBGD05QV1NE2KVIM2SPXML2XUJNXEU"
        ClientSecret="3XHQNSMMHIFBYOLWEPONNV4DOTCDBQH0AEMVGCBG0MZ32XNU"
        RedirectUrl="http://www.sharesdk.cn"
        Enable="true" />
        
	<Pinterest
    	Id="23"
        SortId="23"
        ClientId="1432928"
        Enable="true" />
     
     <Flickr
     	Id="24"
        SortId="24"
        ApiKey="33d833ee6b6fca49943363282dd313dd"
        ApiSecret="3a2c5b42a8fbb8bb"
        RedirectUri="http://www.sharesdk.cn"
        Enable="true" />
        
    <Tumblr
        Id="25"
        SortId="25"
        OAuthConsumerKey="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"
		SecretKey="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"
		CallbackUrl="http://sharesdk.cn"
        Enable="true" />
 
	<Dropbox
        Id="26"
        SortId="26"
        AppKey="7janx53ilz11gbs"
		AppSecret="c1hpx5fz6tzkm32"
        Enable="true" />
        
    <VKontakte 
    	Id="27"
        SortId="27"
        ApplicationId="3921561"
        Enable="true" />
        
    <Instagram 
    	Id="28"
        SortId="28"
        ClientId="ff68e3216b4f4f989121aa1c2962d058"
		ClientSecret="1b2e82f110264869b3505c3fe34e31a1"
		RedirectUri="http://sharesdk.cn"
        Enable="true" />
    
    <!-- 
    	Yixin易信和YixinMoments易信朋友圈的appid是一样的;
    
                       注意:开发者不能用我们这两个平台的appid,否则分享不了
    
       	 易信测试的时候需要先签名打包出apk,
		sample测试易信,要先签名打包,keystore在sample项目中,密码123456

		BypassApproval是绕过审核的标记,设置为true后AppId将被忽略,故不经过
		审核的应用也可以执行分享,但是仅限于分享文字或图片,不能分享其他类型,
		默认值为false。
	-->
	<Yixin 
    	Id="29"
        SortId="29"
        AppId="yx0d9a9f9088ea44d78680f3274da1765f"
        BypassApproval="true"
        Enable="true" />

	<YixinMoments
    	Id="30"
        SortId="30"
        AppId="yx0d9a9f9088ea44d78680f3274da1765f"
        BypassApproval="true"
        Enable="true" />

	<Mingdao
    	Id="31"
        SortId="31"
        AppKey="EEEE9578D1D431D3215D8C21BF5357E3"
        AppSecret="5EDE59F37B3EFA8F65EEFB9976A4E933"
        RedirectUri="http://sharesdk.cn"
        Enable="true" />

</DevInfor>

附效果图:

祝大家好好工作,好好活着。

Android第三期 - sharesdk社会化分享组件,布布扣,bubuko.com

时间: 2024-09-30 06:33:59

Android第三期 - sharesdk社会化分享组件的相关文章

Android应用开发-小巫CSDN博客客户端之集成友盟社会化分享组件

Android应用开发-小巫CSDN博客客户端之集成友盟社会化分享组件 上一篇博客给大家介绍了如何分析网页并且使用jsoup这个库对html代码进行解析,本篇博客继续给大家介绍如何集成友盟社会化组件,如何使用SDK提供的API轻松实现多平台的社会化分享,官网的文档和Demo看起来很头疼的有木有,小巫在集成这个社会化的组件也有点烦躁,所以也需要各位耐心看下面的博文把友盟社会化组件集成到你的应用中去.为什么要选择友盟呢,这里也是答应了小喵的,要帮忙集成他们的服务,所以也顺带帮他们写一篇这样的博文,千

social-share,社会化分享组件之jquery版

social-share,诚如其简洁所述"支持微信(二维码).微博.Github.Google++.LinkedIn.Twitter.Facebook.RSS-, 支持四种大小设置",够简洁,够漂亮.之前使用的"百度分享"组件,却发现可恶的植入了后台广告,页面刷新一次,广告就加载一次,让人生厌.今天有幸发现这款轻量级的social-share,真让人爱不释手,所以借此机会推广给更多需要的人. 原生的social-share(可通过harttle/social-sha

社会化分享组件哪个好用

你的项目做好了,所有的功能完善了,怎么增加传递性和宣传的互动性呢?社会化媒体分享工具是你必不可少的引流神器,社会化媒体就是“能互动的媒体”,能给受众提供一种极大的参与空间.社会化媒体改变以往媒体一对多的传播方式为多对多的“讨论”. 百度社会化分享 该组件提供Android,IOS,webapp 三大移动平台的SDK集成.支持新浪微博,qq,腾讯微博,开心网,人人网5个平台的分享,SSO免去在第三方登陆步骤,提供多种组件皮肤定制,屏幕截图一次分享,提供全面的分享数据统计.对于开发者而言,只要掌握基

Android集成友盟社会化分享功能

1.  产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博.腾讯微博.人人网分享功能. 注意:本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档.或者下载使用最新版SDK. 2.  获取友盟Appkey 如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它. 如果你尚未在友盟注册开

社会化分享组件哪个好用?

你的项目做好了,所有的功能完善了,怎么增加传递性和宣传的互动性呢?社会化媒体分享工具是你必不可少的引流神器,社会化媒体就是“能互动的媒体”,能给受众提供一种极大的参与空间.社会化媒体改变以往媒体一对多的传播方式为多对多的“讨论”. 百度社会化分享 该组件提供Android,IOS,webapp 三大移动平台的SDK集成.支持新浪微博,qq,腾讯微博,开心网,人人网5个平台的分享,SSO免去在第三方登陆步骤,提供多种组件皮肤定制,屏幕截图一次分享,提供全面的分享数据统计.对于开发者而言,只要掌握基

Android中使用ShareSDK实现分享

1,在http://www.mob.com官网上去创建一个后台应用(如果没有账号的同学要去先注册一下),主要后去的是你新创建的应用的appKey值 2,这里我们分享新浪微博为例,在新浪微博的sdk中创建一个新的应用,主要是获取这个应用的appKey和appSecret值 3,下载SDk的客户端,解压出来,在ShareSDK for Android文件夹中运行QuickIntegrater.jar这个文件(前提是你的电脑已近安装了jdk,并配置了环境变量,使用javaw.exe来运行),创建出我们

Android好奇宝宝_12_社会化分享那些事

近期刚过完年,一回公司又赶着为项目添加分享功能,搞得焦头烂额,现在在这里记录一下过程中发生的问题,方便下次查阅. 首先,分享功能有两个方式实现: 1:到各个平台注册开发者.下载sdk.阅读文档.查看官方Demo.集成sdk.写代码测试.修复bug.优化. 好吧,看到这么一长串步骤,而且是每个想要集成的平台都得跑一遍流程,想死的心都有了,方案1直接放弃. 2:使用第三方已集成好各个平台的sdk. 这个方案也是现在绝大多数应用所采用的,原因很简单:免费!方便!快捷! 而第三方sdk也有几个可以选,用

社会化分享功能常用网站

手机端APP: 社会化分享组件 ShareSDK你值得拥有 友盟社会化分享组件 网页版 JiaThis bShare 百度分享

积分分享组件——友推

app 的分享传播是否大同小异?尤其是游戏类应用,分享送金币.送水晶,邀请好友送极品神宠……传播渠道也无非是各类社交网站——QQ 空间.人人网.微信.微博. 据统计,中国移动应用市场 Top100 的 app 有 46% 涉及社交元素,在 Top1000 中,这个比例上升至 55%.社会化分享组件已经逐渐成为 app 开发的标准,而组件本身也在标准化——然而这个过程也存在问题.涉及社交元素,并不代表社交元素有意义:含有社会化分享组件,不代表用户会将 app 分享出去.事实上,除了游戏类及新闻资讯