您的位置:首页 > 其它

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

2014-03-28 14:10 661 查看
首先到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);

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


这样就可以获取到用户信息了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: