使用Sharesdk实现第三方平台登录(qq,新浪微博)

来源:互联网 发布:知乎 好句子 编辑:程序博客网 时间:2024/04/29 12:30

首先到sharesdk开放平台下载demo ,以下要用到的文件来自于 simple里面

第一步:导入官方的jar包  

第二步:添加ShareSDK.xml文件并修改相关平台key

第三步:AndroidManifest.xml文件中添加 

 <activity
            android:name="cn.sharesdk.framework.ShareSDKUIShell"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:windowSoftInputMode="stateHidden|adjustResize" >


            <!--
            AuthorizeAdapter表示一个继承自cn.sharesdk.framework.authorize.AuthorizeAdapter
            的类,这个类可以监听到页面的生命周期,也可以获取授权页面的各种UI控件。 
            开发者可以通过继承AuthorizeAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
            -->
            <meta-data
                android:name="AuthorizeAdapter"
                android:value="cn.sharesdk.demo.MyAdapter" />


            <!--
            QZoneWebShareAdapter表示一个继承自cn.sharesdk.tencent.qzone.QZoneWebShareAdapter
            的类,这个类可以监听到页面的生命周期,也可以获QQ空间网页分享权页面的各种UI控件。 
            开发者可以通过继承QZoneWebShareAdapter,重写其方法,并获取各种UI来自定义这个页面的行为。
            -->
            <meta-data
                android:name="QZoneWebShareAdapter"
                android:value="cn.sharesdk.demo.MyQZoneWebShareAdapter" />


            <!--
            Dropbox的SSO功能需要在此处添加一个对ACTION_VIEW事件的过滤器,其中的scheme是
            “db-”前缀再开发者应用的加上appKey。如果此过滤器不设置,则不能完成SSO功能授权
            -->
            <intent-filter>
                <data android:scheme="db-7janx53ilz11gbs" />


                <action android:name="android.intent.action.VIEW" />


                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

第四步:【qq不需要】如果是新浪平台则需添加一些图片和文字

第五步:activity中调用

oncreate中初始化:ShareSDK.initSDK(this);

qq点击事件:Platform plat_qq = ShareSDK.getPlatform(LoginActivity.this,
QZone.NAME);
plat_qq.setPlatformActionListener(new PlatformActionListener() {


@Override
public void onError(Platform plat, int action, Throwable arg2) {
System.out.println("action" + action);
Message msg = new Message();
msg.what = 1;
msg.obj = plat;
handler.sendMessage(msg);


}


@Override
public void onComplete(Platform arg0, int action,
HashMap<String, Object> res) {
System.out.println("action" + action);
System.out.println(res);
// result(res);// 处理结果
Message msg = new Message();
msg.what = 0;
msg.obj = res;
handler.sendMessage(msg);


}


@Override
public void onCancel(Platform plat, int action) {
Message msg = new Message();
msg.what = 2;
msg.obj = plat;
handler.sendMessage(msg);


}
});
plat_qq.showUser(null);


新浪点击事件:

Platform plat_sina = ShareSDK.getPlatform(LoginActivity.this,
SinaWeibo.NAME);
plat_sina.setPlatformActionListener(new PlatformActionListener() {


@Override
public void onError(Platform plat, int action, Throwable arg2) {
System.out.println("action" + action);
Message msg = new Message();
msg.arg1 = 2;
msg.arg2 = action;
msg.obj = plat;
handler.sendMessage(msg);


}


@Override
public void onComplete(Platform arg0, int arg1,
HashMap<String, Object> arg2) {
System.out.println(arg2);
result_sian(arg2);


}


@Override
public void onCancel(Platform plat, int action) {
Message msg = new Message();
msg.arg1 = 3;
msg.arg2 = action;
msg.obj = plat;
handler.sendMessage(msg);


}
});
plat_sina.showUser(null);



剩下的回调处理自己写吧。

大笑这样就可以获取到用户信息了

0 1
原创粉丝点击