新浪微博SDK包: weibo-android-sdk.zip
下载地址:http://download.csdn.net/detail/xyls126/7072951
将下载的包导入工程:WeiboSDK 作为WeiboSDKDemo的Library
导入得时候可能会报错,先将gen 删掉,然后右键工程项目:properties-->Java Build Path 选中所有的包 remove掉,在把libs里的包加入再clean一下工程,就ok了
运行 WeiboSDKDemo
新建一个工程,参照上面的例子在权限文件里加入权限,写个Activity 里面有一个Btutton 再设置一下监听事件,如:
SsoHandler ssoHandler;
public class MainActivity extends Activity implements OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(this);
}
public void onClick(View v){
int id = v.getId(); // 小提示: 在最新的Android API里 已经不推荐使用switch(v.getId){} 方式了,使用if()else方式,将swtich(){}方式快捷的替换成if()else方式
// 是 选中swtich 然后ctrl+1 ,会弹出一个代码提示框一样的,在提示框里点一下 convert 'swtich' to 'if-else' 就可以了,系统自动替换
if(id==R.id.btnLogin){
WeiboAuth mWeibo = new WeiboAuth(context, Constant.API_KEY, REDIRECT_URL, Constant.SCOPE);
ssoHandler=new SsoHandler(MainActivity.this, mWeibo);
ssoHandler.authorize(new AuthDialogListener());
}
}
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if(msg.what == 0){
Toast.makeText(MainActivity.this, “连接失败”, Toast.LENGTH_SHORT).show();
setResult(RESULT_CANCELED);
finish();
}
}
};
class AuthDialogListener implements WeiboAuthListener{
// Oauth2.0 认证过程中,如果认证窗口被关闭或认证取消时调用。
public void onCancel() {
mHandler.sendEmptyMessage(0);
}
// 授权认证结束后将调用此方法。
public void onComplete(Bundle arg0) {
String token = arg0.getString("access_token");
String expires_in = arg0.getString("expires_in");
String xl_uid = arg0.getString("uid");
Oauth2AccessToken accessToken = new Oauth2AccessToken(token, expires_in);
//... 发送消息给微博
}
/**
* 当认证过程中捕获到 WeiboException
时调用。 如:
* Web 授权时,加载 URL 异常,此时抛出 WeiboDialogException
* Web 授权时,服务器返回的数据不正确,此时抛出 WeiboAuthException
* 参数 e - WeiboException 微博认证错误异常
*/
@Override
public void onWeiboException(WeiboException arg0) {
System.out.println("weiboException:"+arg0);
mHandler.sendEmptyMessage(0);
}
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(ssoHandler != null){
ssoHandler.authorizeCallBack(requestCode, resultCode, data);
}
}
}
我是新手, 有时候能登陆,有时候说无法连接到服务器。。。还没搞通。。。