shareSDK实现QQ第三方分享

1. 帐号注册

每一个平台都少不了的一步,真的的很希望国内有一家公司能像google一样,统治整个IT行业,这样就再也不用去不停的注册不停的申请帐号了,一个google邮箱就够了。

官网地址

shareSDK实现QQ第三方分享_第1张图片

相对而言需要填写的信息还是比较少的,甚至连身份证号都没有用到。

2. 创建应用

登录后,将鼠标移到右上角你的头像上,选择进入后台。shareSDK主要提供四大服务,第一,社会化分享,集成了qq,微信,微博,支付宝,Facebook、Twitte,等多家主流社交平台,第二,短信验证。第三,手机屏幕录制。第四,数据API。

选择一你需要使用的服务创建一个应用。这里我们选择的是第一个,共享服务。

shareSDK实现QQ第三方分享_第2张图片

输入应用的名字,选择应用的平台。

shareSDK实现QQ第三方分享_第3张图片

创建结束后再次点击第一个ShareSDK,进入应用详情页面。

shareSDK实现QQ第三方分享_第4张图片

这里面有很多你创建的这个应用使用当前功能(即分享功能)的情况,包括调用次数,调用时间等。

重要的是app key字段

3. 下载SDK,快速集成

选择上图中的Download SDK,选择Share SDK。

shareSDK实现QQ第三方分享_第5张图片

下载你需要的平台的SDK。这里选择的是android平台

shareSDK实现QQ第三方分享_第6张图片
shareSDK实现QQ第三方分享_第7张图片

选择你需要集成哪些平台的分享功能。

这里说明一下,shareSDk仅仅是一个框架,而不是完整的产品,所以,每当你集成一个平台的分享功能,你就必须要去该平台注册成为开发者,并创建一个应用,得到一个类似于appid的东西你才能够使用。这里为了简单起见仅集成了QQ分享功能

shareSDK实现QQ第三方分享_第8张图片

点击下载,你也可以下载官方的DEMO看看。

4. 生成jar包及资源文件

下载解压后如下图,由于版本不同或许有所差异。

shareSDK实现QQ第三方分享_第9张图片

运行ShareSDK for Android文件夹下的QuickIntegrater.jar文件,需要jdk环境。如果双击无法运行,可以在命令行下进入ShareSDK for Android文件夹,运行下面的命令
java -jar QuickIntegrater.jar 
会出现下面的界面,选择你要集成的分享平台

shareSDK实现QQ第三方分享_第10张图片

项目名称和包名尽量填你自己的项目名称和包名。然后会在当前目录下生成一个文件夹。

shareSDK实现QQ第三方分享_第11张图片

目录结果如下

shareSDK实现QQ第三方分享_第12张图片

5. 导入资源

1. 将shareSDKdemo文件夹下的所有文件复制到项目的src目录下,注意是src文件夹下的所有文件,而不要将src文件夹复制到项目。

2. 将libs下的所有文件复制到项目的libs文件夹下,记得右击然后选择Add as Library。

3. 将res文件夹下的所有文件复制到项目的res文件夹下,注意不要复制整个文件夹

4. 在main文件夹下创建assets文件夹,然后将assets文件夹下的内容复制到项目的assets文件夹下。

最后的结果如下图

shareSDK实现QQ第三方分享_第13张图片

6. 配置AndroidManifest文件

添加权限
<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"/>
添加集成平台的activity。这里只需要添加一个qq平台。

        <activity
            android:name="com.mob.tools.MobUIShell"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" >
            
            <intent-filter>
                <data android:scheme="tencent1105578953" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            intent-filter>
        activity>

data android:scheme=”tencent1105578953”其中的值要换成你自己的appid的值

如何获取qq平台的appid

如果你还集成了其他平台的分享功能要添加对应的activity。

7. 配置第三方平台的appid

在assets文件夹的ShareSDK.xml文件夹内,做如下修改
<ShareSDK AppKey = "16a5ca3b82915"/> 


<QZone
    Id="3"
    SortId="1"
    AppId="1105578953"
    AppKey="aed9b0303e3ed1e27bae87c33761161d"
    Enable="true" />

<QQ
    Id="7"
    SortId="5"
    AppId="1105578953"
    AppKey="aed9b0303e3ed1e27bae87c33761161d"
    ShareByAppClient="true"
    Enable="true" />

如何获取qq平台的appid

8. Java代码实现分享

直接上代码。一个activity,布局里就一个Button,button的监听方法是shareSDK(View view)。分享功能在shareToQQByShareSDK()方法中实现。

public class MainActivity extends AppCompatActivity {
    //shareSDK网站给出的appkey
    private static String APP_KEY = "16a5ca3b82915";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ShareSDK.initSDK(this, APP_KEY);
    }

    public void shareSDK(View view) {
        shareToQQByShareSDK();
    }

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

        // title标题,印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
        oks.setTitle("标题");
        // titleUrl是标题的网络链接,QQ和QQ空间等使用
        oks.setTitleUrl("http://blog.csdn.net/u013451048");
        // text是分享文本,所有平台都需要这个字段
        oks.setText("功能测试,请自动忽略");
        // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        oks.setImageUrl("http://avatar.csdn.net/C/3/D/1_u013451048.jpg");
        // url仅在微信(包括好友和朋友圈)中使用
        //oks.setUrl("http://sharesdk.cn");
        // comment是我对这条分享的评论,仅在人人网和QQ空间使用
        oks.setComment("功能测试:qq空间评论");
        // site是分享此内容的网站名称,仅在QQ空间使用
        oks.setSite("功能测试:app name");
        // siteUrl是分享此内容的网站地址,仅在QQ空间使用
        // 启动分享GUI
        oks.show(this);
    }
}

9. 遇到的问题

在配置清单文件中有些activity会报红,提示找不到这个类,还记得在生成jar包时填的一个项目包名么,在你的项目里找找那个包,看看有没有你报红的那个类,然后在清单文件里重新配置一下,把包名写上就好。

你可能感兴趣的:(学习笔记)