(一)
Model微博用户类
package com.xgh.tencent.weibo.beans;
public class BUser {
public Integer id; //唯一标识
public String uid;
//微博用户id
public String name; //微博用户名
public String nick; //微博用户昵称
public String accessToken; //可访问微博资源的token
public String accessSecret;
//可访问微博资源的Secret
public String verifer; //验证码
public String toString(){
return
"id:"+id+",uid:"+uid+",name:"+name+",nick:"+nick
+",accessToken:"+accessToken+",accessSecret:"+accessSecret
+",verifer:"+verifer;
}
}
(二)
SQLite数据库操作
源代码:
package com.xgh.tencent.weibo.data.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.xgh.tencent.weibo.beans.BUser;
public class DBHelper extends SQLiteOpenHelper {
public final static String
BUSER_TABLE_NAME="b_user";
// 数据库名
public static String dbName = "xghWB.db";
// 数据库版本
public static int version = 1;
// 数据库帮助类实例
private static DBHelper instance;
// db
private SQLiteDatabase db;
private DBHelper(Context context, String name,
CursorFactory factory,
int version)
{
super(context, name, factory,
version);
}
public static DBHelper getInstance(Context
context) {
// 单例
synchronized (DBHelper.class)
{
if (instance
== null) {
instance
= new DBHelper(context, dbName, null, version);
}
return
instance;
}
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql ="create table
b_user("+
"id integer primary key autoincrement,"+
"uid text unique ,"+
"name text not null,"+
"nick text not null,"+
"accessToken text not null,"+
"accessSecret text not null,"+
"verifer text not null)";
db.execSQL(sql); //执行SQL
Log.i("xgh:","table b_user created!");
}
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
db.execSQL("drop table if
exists b_user");
//重新建表
onCreate(db);
}
public void open() {
// 单例
synchronized (DBHelper.class)
{
if (db ==
null) {
db
= instance.getWritableDatabase();
}
}
}
public void close() {
if (db != null) {
db.close();
db =
null;
}
}
public long saveBUser(BUser user){
ContentValues cv = new
ContentValues();
cv.put("id", user.id);
cv.put("uid",user.uid); cv.put("name", user.name);
cv.put("nick",user.nick);
cv.put("accessToken", user.accessToken);
cv.put("accessSecret", user.accessSecret);
cv.put("verifer", user.verifer);
//执行SQL
open();
return db.insert(BUSER_TABLE_NAME, null, cv);
}
public List queryAllBUser(){
List users = new
ArrayList();
open(); //打开数据库
//查询
Cursor cursor = db.query(BUSER_TABLE_NAME, new
String[]{"id","uid","name","nick","accessToken","accessSecret","verifer"},
null, null, null, null, null);
if(cursor==null||!cursor.moveToFirst())
return users;
BUser user;
while(!cursor.isAfterLast()){
user = new BUser();
user.id =
cursor.getInt(cursor.getColumnIndex("id"));
user.uid =
cursor.getString(cursor.getColumnIndex("uid"));
user.name =
cursor.getString(cursor.getColumnIndex("name"));
user.nick =
cursor.getString(cursor.getColumnIndex("nick"));
user.accessToken =
cursor.getString(cursor.getColumnIndex("accessToken"));
user.accessSecret =
cursor.getString(cursor.getColumnIndex("accessSecret"));
user.verifer =
cursor.getString(cursor.getColumnIndex("verifer"));
//添加列列表
users.add(user);
//移向下一条记录
cursor.moveToNext();
}
return users;
}
public int clear(){
open(); //打开数据库
return
db.delete(BUSER_TABLE_NAME, null, null);
}
}
(三)保存授权后的用户名和密码
User_API user_API = new User_API();
String
userJson = null;
try {
//获取带有用户详细信息的JSON userJson
= user_API.info(QQContext.oauth, "json");
Log.e("xgh:userInfo",userJson);
}
catch (Exception e) {
//
TODO Auto-generated catch block
e.printStackTrace();
}
//解析用户详细信息 UData uData = JSONParser.getUDate(userJson);
//如果请求正确 if(uData.context.errcode.equals("0")&&
"0".equals(uData.context.ret)){
BUser user = new BUser();
user.name = uData.userDetail.name;
user.nick = uData.userDetail.nick;
user.uid = uData.userDetail.openid;
user.verifer = QQContext.oauth.getOauth_verifier();
user.accessToken = QQContext.oauth.getOauth_token();
user.accessSecret = QQContext.oauth.getOauth_token_secret();
//保存登录用户信息 dbHelper.saveBUser(user);
Log.i("xgh:","save user succeed!");
}