1. sina一键登录
jar包:weibosdkcore_v3.0.1.jar
必须注意:
1. libs 目录下, 需要建立一个armeabi的文件夹 用于存放官方的 libweibosdkcore.so 文件 , 否则会出现找不到库的问题
2. AndroidManifest.xml 配置文件中需要加入:
<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.WRITE_EXTERNAL_STORAGE" />
<!-- 用于调用 JNI -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<activity
android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:windowSoftInputMode="adjustResize" >
</activity>
<service
android:name="com.sina.weibo.sdk.net.DownloadService"
android:exported="false" >
</service>
用于配置第三方activity,用于SSO授权登录、分享。
3. layout.xml文件中
登录按钮 : <com.sina.weibo.sdk.widget.LoginButton
......
/>
4.
代码:
package com.cdsmartlink.wine.android.activity;
import android.app.Activity;
import android.os.Bundle;
import com.cdsmartlink.wine.android.constants.Constants;
import com.sina.weibo.sdk.auth.AuthInfo;
import com.sina.weibo.sdk.auth.Oauth2AccessToken;
import com.sina.weibo.sdk.auth.WeiboAuthListener;
import com.sina.weibo.sdk.exception.WeiboException;
import com.sina.weibo.sdk.widget.LoginButton;
/**
* 第三方登录
* @author guojing
*
*/
public class ThirdPartyLoginActivity extends Activity{
/*界面UI*/
//新浪微博登录按钮
private
LoginButton sinaWeiboButton;
//新浪微博授权信息
private AuthInfo sinaAuthInfo;
//监听点击登录的事件
private SinaAuthListener sinaAuthListener = new SinaAuthListener();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_layout);
/** 获取新浪授权的信息
* SINA_APP_KEY : 应用APP_KEY
* SINA_REDIRECT_URL : 回调地址
* SINA_SCOPE : 授权作用域
* /
sinaAuthInfo = new AuthInfo(this, Constants.SINA_APP_KEY, Constants.SINA_REDIRECT_URL, Constants.SINA_SCOPE);
sinaAuthInfo = new AuthInfo(this, Constants.SINA_APP_KEY, Constants.SINA_REDIRECT_URL, Constants.SINA_SCOPE);
sinaWeiboButton = (LoginButton) findViewById(R.id.signin_button);
//设置一键登录按钮样式:默认可以不设置
// sinaWeiboButton.setStyle(LoginButton.LOGIN_INCON_STYLE_1);
//绑定新浪微博登录按钮的回调事件监听
sinaWeiboButton.setWeiboAuthInfo(sinaAuthInfo, sinaAuthListener);
}
}
//监听sina提供的登录按钮的监听器
class SinaAuthListener implements WeiboAuthListener {
//授权登录取消
@Override
public void onCancel() {
}
//授权登录完成
@Override
public void onComplete(Bundle bundle) {
Oauth2AccessToken accessToken = Oauth2AccessToken.parseAccessToken(bundle);
if(accessToken != null && accessToken.isSessionValid()){
//对授权成功的数据进行绑定
}
}
@Override
public void onWeiboException(WeiboException arg0) {
}
}